我想做一个函数,可以返回一个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