[英]Laravel 8: attach() does not seem to be working
我想為每個注冊了新帳戶的用戶添加一個新角色。 所以在RegisterController.php
,我添加了這個:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$role = Role::where('name', 'manual user')->first();
$user->roles()->attach($role->id);
return $user;
}
我已經在roles
表中有名為manual user
的行:
但是現在的問題是,每當我嘗試注冊新用戶時,它都不會將$role->id
附加到 pivot 表role_user
表!
請注意,我還添加了這些關系:
User.php
:
public function roles()
{
return $this->belongsToMany(Role::class);
}
Role.php
:
public function users()
{
return $this->belongsToMany(User::class);
}
而role_user
表的遷移是這樣的:
public function up()
{
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('role_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->timestamps();
});
}
那么這里出了什么問題呢? 我該如何解決這個問題?
我真的很感激你們的任何想法或建議......
提前致謝。
你是說return User::create([
在方法的第一行,同時使用 $user 變量進行附加。將其更改為$user = User::create([
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.