我正在尝试将角色分配给用户。但它给了我这个错误。我在用 updateOrCreate()
因为我想稍后使用该方法来更改用户角色
sqlstate[42s22]:找不到列:“where子句”中的1054未知列“0”(sql:select*from) roles
在哪里( 0
=用户id和 1
==和 2
=10)限值1)
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger("user_id")->index();
$table->string("role_name");
$table->foreign("user_id")->references("id")->on("users")->onDelete("cascade");
});
寄存器控制器
protected function create(array $data)
{
$user = user::create([
'name' => $data['name'],
'email' => $data['email'],
"username" => $data["username"],
'password' => Hash::make($data['password']),
]);
if ($user) {
$model = new Role();
$model->assignNewbieRole($user->id);
}
return $user;
}
榜样
public function assignNewbieRole($id)
{
$this->updateOrCreate(["user_id","=",$id],["role_name","=","newbie"]);
}
我该怎么解决这个问题?
2条答案
按热度按时间mbzjlibv1#
必须使用关联数组设置值,其中列名是键,值是要查找/插入的值。
bt1cpqcv2#
您需要传递关联数组而不是单个值: