Проблема запроса ManyToMany Eloquent Laravel, с которой whereHas - PullRequest
1 голос
/ 16 июня 2019

У меня есть отношения ManyToMany между двумя моделями: Album и Media.

Здесь вы можете увидеть Album модель:

class Album extends Model
{
    public function medias()
    {
        return $this->belongsToMany('\Api\Medias\Models\Media');
    }
}

А вот и Media модель:

class Media extends Model
{
    public function albums()
    {
        return $this->belongsToMany('\Api\Medias\Models\Album');
    }
}

Теперь я хочу выбрать все носители, которые принадлежат альбомам с public=1. Красноречивый запрос таков:

return $this->getModel()::whereHas('albums', function($query) {
                $query->where('public', '=', '1');
            })->get();

Но я получаю эту ошибку в whereHas строке:

local.ERROR: ErrorException: compact(): Undefined variable: operator in...

Я использую Laravel Framework 5.4.36 .

1 Ответ

2 голосов
/ 16 июня 2019

Это похоже на выпуск 5.4.(https://github.com/laravel/framework/issues/26936) Вы должны попытаться обновить с 5,4 до 5,5

...