我有一个默认的users
表,我将其更改为具有userable_type
和userable_id
。我有各种模型,例如BursaryAdministrator
和BursaryProvider
,用户可以属于其中任何一个。
BA / BP模型:
public function users() {
return $this->morphMany('App\Users', 'userable');
}
用户模型:
public function userable()
{
return $this->morphTo();
}
在迁移期间,我创建了一个默认的BursaryAdministrator
和BursaryProvider
以及几个用户。我想将它们分配给每个:
$bp = \App\BursaryProvider::first();
$user = User::find(2);
$bp->users()->associate($user);
$ba = \App\BursaryAdministrator::first();
$user = User::find(3);
$ba->users()->associate($user);
但是,由于userable_type
/ userable_id
字段为空,因此它们没有链接。我已经尝试了“关联”和“附加”。
正确的做法是什么?
答案 0 :(得分:1)
您可以在关联后尝试save()
用户,即:
$bp = \App\BursaryProvider::first();
$user = User::find(2);
$bp->users()->associate($user);
$user->save()
$ba = \App\BursaryAdministrator::first();
$user = User::find(3);
$ba->users()->associate($user);
$user->save()
答案 1 :(得分:1)
好,所以这是一天结束时的正确方法:
$bp = \App\BursaryProvider::first();
$user = User::find(2);
$user->userable()->associate($bp);
$user->save();
$ba = \App\BursaryAdministrator::first();
$user = User::find(3);
$user->userable()->associate($ba);
$user->save();
感谢@dparoli向我指出正确的方向。