【发布时间】:2020-07-31 10:01:04
【问题描述】:
我想让有书签的用户。这意味着用户可以为帖子、文章等添加书签... 所以这是我的架构 用户 ID 书签 ID 书签ID 书签类型 用户身份 文章 ID 帖子 ID 如您所见,它是一个多态关系。
我可以为文章添加书签,这没关系。 我的问题是当我想获取用户的书签时。假设用户有 4 个已添加书签的帖子。他想见他们。
我为它写了一个关系,但它返回 []; (用户至少有一个书签帖子)
用户.php
public function bookmarks()
{
return $this->morphMany(Bookmark::class, 'bookmarks', 'bookmarkable_type','user_id');
}
结果
Illuminate\Database\Eloquent\Collection {#313 ▼
#items: []
}
这是书签模型:
public function bookmarkable()
{
return $this->morphTo();
}
public function articles()
{
return $this->belongsTo(Article::class ,'bookmarkable_id','id');
}
这就是我尝试访问书签的方式:
$articles = auth()->user()->bookmarks;
dd($articles);
当我使用它来获取书签帖子时:
public function bookmarks()
{
return $this->hasOne(Bookmark::class, 'user_id','id');
}
它将返回书签表中的记录。
【问题讨论】:
标签: php laravel polymorphism relation