2017-03-16 116 views
1

我有一些模型Task如何返回laravel中的空记录?

如果当前用户有权限,然后他就可以看到所有任务

return Task::all(); 

如果当前用户没有这个许可,则他只能看到空单

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

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

我该怎么办?

+0

为什么你不返回一个空的集合?为什么它应该是任务雄辩的集合?! –

+0

你将如何检查用户权限? – Muthu17

+0

[如何在Laravel 4中手动创建新的空Eloquent集合]可能的重复(http://stackoverflow.com/questions/23599584/how-to-manually-create-a-new-empty-eloquent-collection-in -laravel-4) –

回答

0

你不想要空数组,你不想空集合。也许你应该改变设计。无论如何,因为你真的想传递一个空白的任务列表,所以在数据库中手动插入1个任务作为第一个任务,所以他们的ID将永远是1 & 2。然后,你可以随时返回那些2

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

我的建议,是实际修复设计,以期望空对象,所以你可以不喜欢

return ''; 
+0

这将您的代码绑定到数据库数据。只有那些特定的行存在时,你的代码才会起作用,并且代码中为什么这些ID是硬编码的并不明显。 –

0

一种选择是返回一个新创建的如果JSON模式必须完全匹配,则数组中的任务对象。它看起来是这样的:

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