Я хочу найти то, что сделано данным пользователем на данном посту. У меня есть один сообщение модель, как: сообщениеПоиск родственной модели в laravel на основе родителя
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) Есть ли какая-либо функция в ларавеле для этого.
Я знаю, что я могу напрямую запросить Как использование сырого, где функционируют как
\Like::whereLikeableId('10')->whereLikeableType('Post')->whereUserId('1')->get();
, но это выглядит некрасиво, и я хочу знать Laravel способа сделать это.
Спасибо за ваш ответ, который работал. Есть ли способ сделать это как: Like :: likeable ($ post) -> где ('user_id', 1), я имею в виду наоборот, чтобы это не зависело от родительской модели. – manish
Вы можете использовать 'whereHas', но Я не думаю, что это упростит ситуацию. Зачем вам это нужно? –