我想搜索特定用户在给定帖子上做出的喜欢。 我有一个发布模型:发布
class Post extends \Eloquent
{
protected $fillable = [];
public function likes()
{
return $this->morphMany('Like', 'likeable');
}
}
和一个赞模型:
class Like extends \Eloquent
{
protected $fillable = [];
/**
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
*/
public function likeable()
{
return $this->morphTo();
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function owner()
{
return $this->belongsTo('User', 'owner_id');
}
}
和laravel中提供的默认用户模型。
现在我查询发布模型,使用post_id找到一个帖子,如
$post=Post::find(10);
和用户模型
$user=User::find(1);
现在我想找到喜欢用户(1) 帖子(10) la lavel中是否有任何可用的功能。
我知道我可以直接查询Like使用raw where function as
\Like::whereLikeableId('10')->whereLikeableType('Post')->whereUserId('1')->get();
但这看起来很难看,我想知道这样做的方式。
答案 0 :(得分:0)
您只需要:
$like = $post->likes()->where('user_id', 1)->first();