我想让具有书签的用户使用。这意味着用户可以为帖子,文章等添加书签。所以这是我的模式使用者ID书签IDbookableable_idbookmarkable_type用户身份文章ID帖子ID如您所见,它是一个多态关系。
好吧,我可以为文章添加书签,没关系。我的问题是当我想获取用户的书签时。假设用户有4个帖子已添加书签。他想见他们。
我为此写了一个关系,但是它返回[]; (用户至少有一个带书签的帖子)
User.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');
}
它将返回书签表中的记录。
您应该获得关系,否则它将是空的。
$articles = auth()->user()->bookmarks()->get();
dd($articles);