我无法找到任何答案,所以我决定问。我希望我没有发布重复内容。
我正在编写一个简单的控制台命令来在Laravel 5中查找数据库中的任务。用户可以启动找到的任务或在控制台中显示它们。所以我在app / Console / Commands和RunOrDisplay方法中有一个RunScheduledTasksCommand类,如下所示:
$tasks = $this->tasks->toArray();
if ($taskId)
{
$tasks = array($this->tasks->toArray());
}
$this->table($headers, $tasks);
所以这里,$ this-> tasks是我的Eloquent模型,由Task :: find($ taskId)或Task :: all()返回,我想在控制台的表中显示这些任务。
现在,Task :: find($ taskId) - > toArray()将生成一维数组,但Task :: all() - > toArray()将执行多维数组。我的代码工作正常,我只是好奇是否有更好的方法来做到这一点。 Laravel 5中是否已经内置了两种情况下的多维数组?
答案 0 :(得分:1)
而不是Task::find($taskId)
,请使用:
Task::whereId($taskId)->get();
这将确保您始终处理Collection
对象,无论您拥有多少型号。