ManyToMany雄辩的Laravel查询问题在哪里

时间:2019-06-16 16:34:07

标签: php laravel eloquent laravel-5.4 laravel-5.5

我在两个模型之间建立了ManyToMany关系:AlbumMedia

在这里您可以看到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 个答案:

答案 0 :(得分:2)

这就像5.4期。 (https://github.com/laravel/framework/issues/26936) 您应该尝试从5.4升级到5.5