无法将值 NULL 插入列 'user_id'、table 'dbo.role_user';列不允许空值
Cannot insert the value NULL into column 'user_id', table 'dbo.role_user'; column does not allow nulls
我在 Laravel 5.0 中使用 Zizaco/Entrust 来应用 RBAC,但出现以下错误:
Cannot insert the value NULL into column 'user_id', table 'dbo.role_user'; column does not allow nulls. INSERT fails. (SQL: insert into [role_user] ([role_id], [user_id]) values (2, ))
我按照所有步骤实施委托,在我的 User.php
存储方法中我有:
public function store(UserRequest $request)
{
$user = new User();
$user->create($request->all());
$roles=$request->get('role_id');
$user->roles->attach($roles);
return redirect('users');
}
我想知道如何解决这个问题。感谢所有帮助。
额外信息:
Entrust 需要一个用户 ID 才能将角色分配给用户。
当您创建用户时,没有用户标识,因为在您创建用户时将创建一个用户标识。
因此,在创建用户后,您需要先检索用户,然后才能将其分配给角色。
此处:查看此 URL 中的第二个代码块:Entrust Github。
他们先接收用户,然后将其分配给角色。
首先像这样创建用户:
User::create($request->all());
然后像这样抓取新创建的用户:
$User = User::where('username', '=', $request->username)->first();
然后像这样将用户分配给角色:
$User->roles()->attach($request->roleid);//parenthesis missing
总计:
public function store(UserRequest $request)
{
User::create($request->all());
$User = User::where('username', '=', $request->username)->first();
$User->roles()->attach($request->roleid);
return redirect('users');
}
我在 Laravel 5.0 中使用 Zizaco/Entrust 来应用 RBAC,但出现以下错误:
Cannot insert the value NULL into column 'user_id', table 'dbo.role_user'; column does not allow nulls. INSERT fails. (SQL: insert into [role_user] ([role_id], [user_id]) values (2, ))
我按照所有步骤实施委托,在我的 User.php
存储方法中我有:
public function store(UserRequest $request)
{
$user = new User();
$user->create($request->all());
$roles=$request->get('role_id');
$user->roles->attach($roles);
return redirect('users');
}
我想知道如何解决这个问题。感谢所有帮助。
额外信息: Entrust 需要一个用户 ID 才能将角色分配给用户。 当您创建用户时,没有用户标识,因为在您创建用户时将创建一个用户标识。 因此,在创建用户后,您需要先检索用户,然后才能将其分配给角色。
此处:查看此 URL 中的第二个代码块:Entrust Github。 他们先接收用户,然后将其分配给角色。
首先像这样创建用户:
User::create($request->all());
然后像这样抓取新创建的用户:
$User = User::where('username', '=', $request->username)->first();
然后像这样将用户分配给角色:
$User->roles()->attach($request->roleid);//parenthesis missing
总计:
public function store(UserRequest $request)
{
User::create($request->all());
$User = User::where('username', '=', $request->username)->first();
$User->roles()->attach($request->roleid);
return redirect('users');
}