Я пытаюсь выбрать изображение с наибольшим количеством лайков в указанной категории c из моей базы данных. У меня есть таблица базы данных, в которой хранятся картинки, и таблица, в которой хранятся лайки. Таблица изображений связана с симпатичной таблицей через отношения полиморфий hasMany c.
Как модель:
public function likeable()
{
return $this->morphTo();
}
Модель изображения:
public function likes()
{
return $this->morphMany('App\Like', 'likeable');
}
Домашний контроллер:
Picture::where('picture_type', 'food')->orderBy(likes(), 'desc')->first();
Likeable Migration:
public function up()
{
Schema::create('likeable', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('likeable_id');
$table->string('likeable_type');
$table->timestamps();
});
}
Пока что вышеприведенная строка кода в моем домашнем контроллере возвращает ошибку. Из того, что я понимаю, метод лайков должен вызываться на конкретном c экземпляре. Тем не менее, я не знаю, как реализовать это все время, сохраняя мое условие where.
Спасибо за вашу помощь.