在User
類中有兩個方法返回不同的查詢。我想用兩個這樣Laravel:concat多個模型查詢
$users = User::fromCountry('DE')
->isMaster()
->paginate(20);
,但它是不工作的,因爲isMaster()
是從User
的方法,而不是從查詢生成器:
調用未定義的方法照亮\數據庫\查詢\生成器:: isMaster()
我也試過
$users = User::fromCountry('DE')
->(User::isMaster())
->paginate(20);
但這也不起作用。是否可以輕鬆地將User
課程中的查詢結合起來?
以防萬一它的必要,這裏有來自User
類中的兩個方法:
public static function isMaster()
{
switch (orga) {
case 1:
return static::where('modeIN','=','MT');
case 2:
return static::where('modeICI','=','CMT');
case 3:
return static::where('modeWHO','=','HMT');
}
}
public static function fromCountry($country)
{
return static::where(
function($query) use($country){
$query->whereHas('addresses',
function($q) use($country){
$q->where('idCountry','=',$country);
}
)
->orWhereHas('institutes',
function($q) use($country){
$q->whereHas('addresses',
function($q) use($country){
$q->where('idCountry','=',$country);
});
}
);
});
}
你不能讓它靜態的目的是什麼?我是否理解,我必須將查詢調用分成兩個調用:'$ users = User :: fromCountry('DE'); '和'$ users = User :: queryIsMaster($ users) - > paginate(20);'? – Adam
不,你只需調用'$ users = User :: fromCountry('DE') - > isMaster() - > paginate(20);' – madalinivascu