我想做一個函數,可以返回一個Query \ Builder,將始終返回一個空集。Laravel查詢生成器表達式返回空結果
我正在做一些幫助函數和Query \ Builder對象得到傳遞。在某些情況下,我總是希望結果Query \ Builder對象返回一個空集,而不管稍後添加什麼。
一個例子如下。我有一個函數返回查詢get_users_for_wednesdays
,並將結果傳遞給另一個函數,該函數在where子句上添加。我不需要檢查是否存在filter_for_steves
中的查詢,我只是想修改它並返回一個查詢。
是否有一個總是產生空集的高效查詢?理想情況下,在實際查詢數據庫之前短路。
public function get_users_for_wednesdays()
{
if (is_wednesday())
{
return \App\User::query();
}
else
{
// HOW TO RETURN QUERY FOR EMPTY RESULT SET HERE?
}
}
public function filter_for_steves($users)
{
return $users->where('name', 'steve');
}
public getThirdWednesdayStevesAttribute()
{
$users = get_users_for_wednesday();
return filter_for_steves($users)->get();
}
這可能是你在找什麼:http://stackoverflow.com/questions/23599584/how-to-manually-create-a-new-empty-eloquent-collection-in-laravel-4 – commanderZiltoid
@commanderZiltoid,謝謝!我正在讀你最初的答案,然後它突然消失了:-)我不知道你發佈的鏈接是我想要的,因爲這似乎是在處理一個收藏?我希望Query \ Builder能夠被修改,但是當調用get()時總是返回一個空集。 –
'return \ App \ User :: query() - > limit(0);'但你必須小心。 – skido