0
私はLaravel 5 REST-webappを構築しています。今私はAdmiを追加したいと思います。私は1対多の関係設定することでこれを行っているので、同じようにテーブル を(1つの役割を持つことができ、ユーザが、1つの役割は、多くのユーザーを持つことができます):Laravel 5 checkif管理ミドルウェアロジックが正しくありません(ロールが1対多)
この作品public function role()
{
return $this->hasOne(Role::class);
}
、私はROLE_IDを持つユーザーを持っています。 しかし、今私はミドルウェアを書き留めて、このrole_idを正しく使用しています。
は今、私の管理ミドルウェアは
public function handle($request, Closure $next, $guard = null)
{
if (Auth::User()->isRole('Admin')) {
return $next($request);
}
return redirect()->guest('login');
}
そして、私が持っている私のユーザーモデルである:
public function isRole($roleName)
{
if ($this->with('role') == $roleName)
{
print_r($this->with('role.name'));
}
return false;
}
しかし、このコードは、単にホームページに私を送信します。
私のミドルウェアのロジックは間違っています(他のすべては正しく設定されています)。
public function isRole($roleName)
{
if ($this->with('role') == $roleName)
{
print_r($this->with('role.name'));
}
return false;
}
へ:
種類は
で
role_id
列を持っていると仮定しに
コメントありがとうございました。 7エラー:列roles.user_idが存在しません 行1:「ロール」から「*ロール」、「user_id」= $ 1、「ロール」を選択します。 ^(SQL:select * from "role"、 "role"、 "role"、 "role"、 "role"、 "role"、 "roles"、 "roles"、 "roles"など)を使用することができます。テーブル、それはこのようなものだ、多くの多くの場合: 'foreachの(の$ this - >役割() - >(取得)$の役割など) { 場合($ロールベース>名前== $のroleName) { リターン真; } } 返信false; ' – user3634184
@ user3634184私の編集した回答を見てください –