【发布时间】:2020-06-26 04:26:57
【问题描述】:
我想从数据库中获取所有帖子的数据,这些数据将确定帖子是否被 auth()->user() 喜欢。很可能是通过计数。
应用\发布
public function likes()
{
return $this->morphToMany('App\User', 'likeable');
}
应用\用户
public function likePosts()
{
return $this->morphedByMany('App\Post', 'likeable')->withTimestamps();
}
点赞表
Likeables table has ('user_id', 'likeable_id', 'likeable_type')
我尝试使用 orWhereHas
$posts = Post::with( ['user', 'tags', 'category'])->orwhereHas('likes', function($q) {
$q->where('user_id', auth()->id());
})->latest()->withoutTrashed()->paginate(10);
但是关于查询,我只能得到用户喜欢的那些帖子。我想获取所有帖子并检查用户是否喜欢该帖子
我遇到了 whereHasMorph,但它只适用于 morphTo 而不是 morphToMany。
【问题讨论】:
-
你找到解决办法了吗?
-
@m_____ilk 是的,请检查下面的答案。
标签: php database laravel-5 eloquent