需要你的帮助。 我有一个视图有6个选项卡,两个主要选项卡和三个主要选项卡内部,我在每个选项卡中传递几乎相同的数据,我只更改状态和角色。
像这样:角色1有三个选项卡:所有任务|正在进行的任务|完成任务
角色2有三个选项卡:所有任务|正在进行的任务|完成任务
现在我正在传递数组中的数据,为什么...因为我没有找到一种方法来处理集合。但是因为我无法循环通过一个"列"一个数组,这意味着我应该传递6个数组,每个选项卡一个。渲染这个页面变得越来越慢,随着时间的推移会变得更糟。
这里是其中一个阵列:
$designersAllTasks = array();
foreach ($designersTasks as $designerTask)
{
$designersAllTasks[] = array(
'id' => ($designerTask->id),
'task_type' => (DB::table('tasktypes')->where('id','=', $designerTask->task_type_id)->value('task_type')),
'task_code' => (DB::table('tasktypes')->where('id','=', $designerTask->task_type_id)->value('task_code')),
'chapter_type' => (DB::table('chapters')->where('id','=', $designerTask->related_block)->value('type')),
'chapter' => (DB::table('chapters')->where('id','=', $designerTask->related_block)->value('description')),
'assigned_to' => (DB::table('users')->where('id','=', $designerTask->assigned_to)->value('display_name')),
'task_time' => (DB::table('task_interactions')->where('task_id','=', $designerTask->id)->pluck('task_time')->sum()),
'start_date' => (DB::table('task_interactions')->where('task_id','=', $designerTask->id)->where('status','=','In Progress')->pluck('created_at')->first()),
'due_date' => ($designerTask->due_date),
'status' => ($designerTask->status),
'comments' => ($designerTask->comments),
);
};
所以我试图用一个系列来做,但到现在为止我还没有找到一个正确的方法。
这是我试图收藏的方式,显然是错误的方式......
$allTasks = new Collection();
foreach ($tasks as $task)
{
$allTasks = collect(
[
'id' => ($task->id),
'task_type' => (DB::table('tasktypes')->where('id','=', $task->task_type_id)->value('task_type')),
'task_code' => (DB::table('tasktypes')->where('id','=', $task->task_type_id)->value('task_code')),
'chapter_type' => (DB::table('chapters')->where('id','=', $task->related_block)->value('type')),
'chapter' => (DB::table('chapters')->where('id','=', $task->related_block)->value('description')),
'assigned_to' => (DB::table('users')->where('id','=', $task->assigned_to)->value('display_name')),
'role' => (DB::table('users')->where('id','=', $task->assigned_to)->value('role')),
'task_time' => (DB::table('task_interactions')->where('task_id','=', $task->id)->pluck('task_time')->sum()),
'start_date' => (DB::table('task_interactions')->where('task_id','=', $task->id)->where('status','=','In Progress')->pluck('created_at')->first()),
'finished_in' => (DB::table('task_interactions')->where('task_id','=', $task->id)->where('status','=','Finished')->value('created_at')),
'due_date' => ($task->due_date),
'status' => ($task->status),
'comments' => ($task->comments),
]
);
};
如果我{{ dd($allTasks) }}
,则返回:
Collection {#334 ▼
#items: []
}
我怎样才能为每个循环添加一行到我的集合中。
提前致谢
答案 0 :(得分:1)
虽然你的问题很难弄清楚,但也许,假设它甚至是你所要求的,会让你回到正轨。
$allTasks = new Collection();
$tasks = array(
[
'id' => 1,
'task' => 'go to the store',
'task_type' => 'errand',
'comments' => 'no fun'
],
[
'id' => 2,
'task' => 'drink beer',
'task_type' => 'not an errand',
'comments' => 'fun'
]);
foreach ($tasks as $task) {
$allTasks->push(([
'id' => $task['id'],
'task_type' => $task['task_type'],
'comments' => $task['comments']
]));
}
dd($allTasks);
Collection {#518 ▼
#items: array:2 [▼
0 => array:3 [▼
"id" => 1
"task_type" => "errand"
"comments" => "no fun"
]
1 => array:3 [▼
"id" => 2
"task_type" => "not an errand"
"comments" => "fun"
]
]
}
请记住,我不知道你的数据库数据是什么,所以我在那里创建了一些测试数据,但它应该让你朝着正确的方向前进。