ManyToMany Eloquent Laravel 与 whereHas 的查询问题
ManyToMany Eloquent Laravel query issue with whereHas
我在两个模型之间存在多对多关系: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');
}
}
现在我想 select 属于 public=1
相册的所有媒体。 eloquent 查询是这样的:
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.
好像是5.4的问题。 (https://github.com/laravel/framework/issues/26936)
您应该尝试从 5.4 升级到 5.5
我在两个模型之间存在多对多关系: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');
}
}
现在我想 select 属于 public=1
相册的所有媒体。 eloquent 查询是这样的:
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.
好像是5.4的问题。 (https://github.com/laravel/framework/issues/26936) 您应该尝试从 5.4 升级到 5.5