我有这个Bookmark模型
public function bookmarkable()
{
return $this->morphTo();
}
public function user()
{
return $this->belongsTo(User::class);
}在我的User模型中
public function bookmarks()
{
return $this->hasMany(Bookmark::class);
}
public function posts()
{
return $this->hasMany(Post::class);
}和Post模型
public function bookmarks()
{
return $this->morphMany(Bookmark::class, 'bookmarkable');
}
public function user()
{
return $this->belongsTo(User::class);
}我想要创建一个新的$bookmark,并将一个$post与那个书签相关联。
书签表有bookmarkable_type、bookmarkable_id和user_id列。
发布于 2022-08-02 20:08:03
因为morphTo扩展了belongsTo
你可以这样用
$post = Post::first()// the post u want add to bookmark
$newBookmark = new Bookmark([]);
$newBookmark->name="lorem ipsum";
$newBookmark->bookmarkable()->associate($post);
$newBookmark->user()->associate($post->user);
$newBookmark->save();参见类docs:https://laravel.com/api/9.x/Illuminate/Database/Eloquent/Relations/MorphTo.html
https://stackoverflow.com/questions/73210544
复制相似问题