很高兴我想在数据库中同时保存项目和任务。但这对我来说并不顺利。让我为你说明实际发生的事情:
在保存项目和任务之前添加项目和任务的屏幕截图:
link:http://i.imgur.com/ZWgpOtQ.png
保存项目和任务后的屏幕截图:
link:http://i.imgur.com/JybgsVN.png
正如您所看到的那样,问题是它正在覆盖值。
以下是我的数组如何显示的截图:
link:http://i.imgur.com/xXCtobd.png
以下是我用于将项目和任务插入订单的代码:
Orderproject.php:
static public function storeOrderProjects($inputArr )
{
//die('xx inputArr val: ' .print_r($inputArr));
for($i=0;$i< count( $inputArr['id_project']);$i++ ){
$data = array(
'id_order' => $inputArr['id'],
'id_project' => $inputArr['id_project'][$i],
'hour' => $inputArr['hour'][$i],
'hourprice' => $inputArr['hour_salary'][$i],
'totalprice' => $inputArr['total_salary'][$i],
'createdBy' => Auth::user()->id
);
Orderproject::create($data);
}
}
Ordertask.php:
static public function storeOrderTasks($inputArr )
{
//die('xx inputArr val: ' .print_r($inputArr));
for($i=0;$i< count( $inputArr['id_task']);$i++ ){
$data = array(
'id_order' => $inputArr['id'],
'id_task' => $inputArr['id_task'][$i],
'hour' => $inputArr['hour'][$i],
'hourprice' => $inputArr['hour_salary'][$i],
'totalprice' => $inputArr['total_salary'][$i],
'createdBy' => Auth::user()->id
);
Ordertask::create($data);
}
}
我知道问题是什么,在for循环中,id_project与元素hour和hour_salary的值“5,5”在同一个索引上。我想我真的很亲密,但仍然不知道如何解决这个问题。有人可以帮帮我吗?无论如何,谢谢你的回答。
答案 0 :(得分:1)
$inputArr['id_project']
只有一个值,$inputArr['id_task']
中只有一个值,因此storeOrderProjects
和storeOrderTasks
只取第一个值,忽略第二个值。使用给定的结构你可能应该遍历hour
,但是,如果可能的话,你应该考虑使用一个更好地反映业务逻辑的数组结构。
答案 1 :(得分:0)
嗯,你正在计算一个长度为1的数组,所以你只需通过一次$i
等于0的循环,因此你只需要插入其他数组的第一个值。问题是您的小时和小时工资数组与id_task
和id_project
数组的长度相同。