首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 9拉拉关联多态关系书签

Laravel 9拉拉关联多态关系书签
EN

Stack Overflow用户
提问于 2022-08-02 16:04:26
回答 1查看 146关注 0票数 0

我有这个Bookmark模型

代码语言:javascript
复制
public function bookmarkable()
{
    return $this->morphTo();
}

public function user()
{
    return $this->belongsTo(User::class);
}

在我的User模型中

代码语言:javascript
复制
public function bookmarks()
{
    return $this->hasMany(Bookmark::class);
}

public function posts()
{
    return $this->hasMany(Post::class);
}

Post模型

代码语言:javascript
复制
public function bookmarks()
{
    return $this->morphMany(Bookmark::class, 'bookmarkable');
}

public function user()
{
    return $this->belongsTo(User::class);
}

我想要创建一个新的$bookmark,并将一个$post与那个书签相关联。

书签表有bookmarkable_typebookmarkable_iduser_id列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-02 20:08:03

因为morphTo扩展了belongsTo

你可以这样用

代码语言:javascript
复制
$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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73210544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档