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

如何返回laravel中的空记录列表?,laravel,Laravel,我有一些模型任务 如果当前用户具有权限,则他可以查看所有任务 return Task::all(); 如果当前用户没有此权限,则他只能看到空列表 return Task::where('id', 0)->get(); 设计是为了用户必须总是得到一些结果,但我的函数使用从Task::all()返回的数据,所以我不能返回空数组或空的雄辩集合 我该怎么办?您不需要空数组,也不需要空集合。也许你应该改变设计。无论如何,由于您确实希望传递一个空的任务列表,请在数据库中手动插入1到2个任务作为第一

我有一些模型
任务

如果当前用户具有权限,则他可以查看所有任务

return Task::all();
如果当前用户没有此权限,则他只能看到空列表

return Task::where('id', 0)->get();
设计是为了用户必须总是得到一些结果,但我的函数使用从
Task::all()
返回的数据,所以我不能返回空数组或空的雄辩集合


我该怎么办?

您不需要空数组,也不需要空集合。也许你应该改变设计。无论如何,由于您确实希望传递一个空的任务列表,请在数据库中手动插入1到2个任务作为第一个任务,这样它们的ID将始终为1和2。但其他的都空着。那么你可以随时归还那两个

return Task::whereIn('id', [1,2])->get();
我的建议是,实际修复设计,使其预期为空对象,这样您就可以执行以下操作

return '';

您不需要空数组,也不需要空集合。也许你应该改变设计。无论如何,由于您确实希望传递一个空的任务列表,请在数据库中手动插入1到2个任务作为第一个任务,这样它们的ID将始终为1和2。但其他的都空着。那么你可以随时归还那两个

return Task::whereIn('id', [1,2])->get();
我的建议是,实际修复设计,使其预期为空对象,这样您就可以执行以下操作

return '';

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

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

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

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

为什么不返回空集合?为什么它应该是任务雄辩的集合?!如何检查用户权限?为什么不返回空集合的原因可能重复?为什么它应该是任务雄辩的集合?!如何检查用户权限?可能的重复会将代码绑定到数据库数据。您的代码只有在这些特定行存在的情况下才能工作,并且代码上不清楚为什么这些ID在那里被硬编码。这会将您的代码与数据库数据绑定在一起。您的代码只有在这些特定行存在的情况下才能工作,并且代码中不清楚为什么这些ID是硬编码的。