【发布时间】:2017-11-05 05:44:03
【问题描述】:
我有一个模型tasks,过去用datetime完成任务,未来用datetime完成任务。
在检索任务时,我想以升序(从现在到未来)显示即将到来的任务,并以降序(从现在到过去)显示过去的任务。
public function getTasks()
{
$futureTasks = Task::whereDate('datetime', '>', Carbon::now())->orderBy('datetime', 'asc')->get();
$pastTasks = Task::whereDate('datetime', '<', Carbon::now())->orderBy('datetime', 'desc')->get();
$tasks = array_merge($futureTasks, $pastTasks);
$response = ['tasks' => $tasks];
// return...
}
我收到以下错误:
array_merge(): 参数 #1 不是数组
如果我颠倒 array_push 函数的参数顺序,我仍然会得到同样的错误。
public function getTasks()
{
$futureTasks = Task::whereDate('datetime', '>', Carbon::now())->orderBy('datetime', 'asc')->get();
$pastTasks = Task::whereDate('datetime', '<', Carbon::now())->orderBy('datetime', 'desc')->get();
$tasks = array_merge($pastTasks, $futureTasks);
$response = ['tasks' => $tasks];
// return...
}
如果我只检索没有 array_merge 的 futureTasks 或 pastTasks,我会得到所需的输出。
public function getTasks()
{
$futureTasks = Task::whereDate('datetime', '>', Carbon::now())->orderBy('datetime', 'asc')->get();
$response = ['tasks' => $futureTasks];
// return...
}
我在这里做错了什么?非常感谢您的宝贵时间。
【问题讨论】:
标签: laravel laravel-5 eloquent laravel-5.4 laravel-query-builder