如何在laravel中返回空记录列表?

时间:2017-03-16 10:23:26

标签: laravel

我有一些模型Task

如果当前用户拥有权限,那么他可以看到所有任务

return Task::all();

如果当前用户没有此权限,那么他只能看到空列表

return Task::where('id', 0)->get();

设计是这样的,用户必须总是得到一些结果,但我的函数使用从Task::all()返回的数据,所以我不能返回空数组或空的Eloquent集合。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

你不想要空阵,你不想要空集。也许你应该改变设计。无论如何,因为你真的想传递一个空的任务列表,所以在数据库中手动插入1 2个任务作为第一个任务,所以他们的ID总是1&但是别的一切都是空的。那么你可以随时返回那些2

return Task::whereIn('id', [1,2])->get();

我的建议是,实际上将设计修复为期望空对象,这样你就可以做类似

的事情了
return '';

答案 1 :(得分:0)

如果JSON模式必须完全匹配,则可以选择在数组中返回新创建的Task对象。它看起来像这样:

$emptyTask = new Task();
return [$emptyTask]