【发布时间】:2017-04-04 14:09:39
【问题描述】:
用户模型:
public function userable()
{
return $this->morphTo();
}
导师模型:
public function user()
{
return $this->morphOne('App\Models\User', 'userable');
}
学生模型看起来与导师模型相同。
Student 和 Mentors 表包含一个名为 user_id 的自定义 PK,它引用 users 表上的主键。
所以我想做的是以下几点:
$user = new User();
$user->first_name = 'Trajce';
$user->last_name = 'Petkoski';
$user->nickname = 'ads';
$user->administrator = '0';
$user->email = 'asd';
$user->password = Hash::make('test');
$user->save();
$mentor = new Mentor();
$mentor->user_id = $user->id;
$mentor->save();
$user->userable_id = $mentor->user_id;
$mentor->user()->save($user);
但是,在用户表中,userable_id 设置为 0,而 userable_type 值设置为正确值。这里的问题是 save() 将其设置为预定义的 0。知道幕后发生了什么吗?
【问题讨论】:
-
你使用的是什么版本的 Laravel?
-
最新的,5.4
标签: php laravel laravel-5 eloquent laravel-eloquent