私はlaravelの基本認証をしようとしています。私はラベール認可のためにゲートを使用しています。Laravel Gate:承認が機能しない
表構造
User Table, Permission Table, Role, role_permission table
user : id, name , password, email
permission : id, name
role:id , name
role_permission: id, role_id, permission_id
authServiceProvider
public function boot(GateContract $gate)
{
$this->registerPolicies();
foreach($this->getPermissions() as $permission)
{
$gate->define($permission->name,function($user) use($permission){
return $user->role->id == $permission->role_id;
});
}
}
public function getPermissions()
{
$permissions = \DB::table('role_permission')
->join('permissions', 'permissions.id', '=', 'role_permission.permission_id')
->select('role_permission.*','permissions.*')
->get();
return $permissions;
}
それは正しく、それが適切なユーザーに許可テーブルでありますけれども、私はルートにアクセスすることはできません意味は動作しません。
そこにはコメントアウトされていない 'dd()'があります...また、これはやや非効率です。システム内のすべての権限ではなく、ユーザーの権限だけを照会することができます。 –
あなたの質問から 'dd($ permission)'を削除します。 – Onix
は、私は実際にあなたが – Hola