【发布时间】:2017-07-06 22:52:31
【问题描述】:
我有一个提交工作的表单,表单中有一个部分,您可以在其中添加额外信息,并具有克隆字段的功能。
我在将记录保存到我的任务表时遇到问题,该表链接到带有 ID 的作业表。
当用户克隆字段时,我无法遍历数据并将其保存在数据库中。
我正在削减所有验证以节省空间。这是我在 JobController 中的 store 方法:
public function store(Request $request)
{
/*JOB*/
$job = new Job();
$job->title=$request->title;
$job->client_id=$request->client_id;
$job->user_id=$request->user_id;
$job-> number =$request->number;
$job->ponumber =$request->ponumber;
$job->status =$request->status;
$job->invoicestatus =$request->invoicestatus;
$job->save();
$lastInsertedId = $job->id;
/*TASK*/
$task = new Task();
$task->job_id = $lastInsertedId;
$task->description = $request->description;
$task->supplier_hs= $request->supplier_hs;
$task->quote_hs= $request->quote_hs;
$task->quote_hs_date= $request->quote_hs_date;
$task->quote_client= $request->quote_client;
$task->quote_client_date= $request->quote_client_date;
$task->readytoinvoice= $request->readytoinvoice;
$task->invoiced= $request->invoiced;
$result = $task->getAttributes();
foreach($result as$key=>$t){
$i = 0;
foreach($result[$key] as $value){
echo"<pre>";
print_r($value);
echo"</pre>";
$i++;
echo "counter: " .$i;
}
}
//$task->save();
//return redirect('jobs')->with(array('feedback'=>'New Job created successfully','last_insert_id' => $job));
}
这是我从 $result 得到的输出:
Array
(
[description] => Array
(
[0] => job 1
[1] => Job 2
[2] => job 3
)
[supplier_hs] => Array
(
[0] => 1000
[1] => 200
[2] => 3000
)
[quote_hs] => Array
(
[0] => 1000
[1] => 2000
[2] => 300
)
[quote_hs_date] => Array
(
[0] => 2017-02-15 11:50:07
[1] => 2017-02-01 00:00:00
[2] => 2017-02-15 11:50:07
)
[quote_client] => Array
(
[0] => 1000
[1] => 2000
[2] => 3000
)
[quote_client_date] => Array
(
[0] => 2017-02-15 11:50:07
[1] => 2017-02-01 00:00:00
[2] => 2017-02-15 11:50:07
)
[readytoinvoice] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[invoiced] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
)
这是我想要得到的结果:
Array
(
[0] => Array
(
[description] => job 1
[supplier_hs]=> Job 2
[quote_hs] => job 3
[quote_hs_date] => 1000
[quote_client] => 2000
[quote_client_date] => 2017-02-15 11:50:07
[readytoinvoice] => 1
[invoiced] => 1
),
[1] => Array
(
[description] => job 1
[supplier_hs]=> Job 2
[quote_hs] => job 3
[quote_hs_date] => 1000
[quote_client] => 2000
[quote_client_date] => 2017-02-15 11:50:07
[readytoinvoice] => 1
[invoiced] => 1
),
[2] => Array
(
[description] => job 1
[supplier_hs]=> Job 2
[quote_hs] => job 3
[quote_hs_date] => 1000
[quote_client] => 2000
[quote_client_date] => 2017-02-15 11:50:07
[readytoinvoice] => 1
[invoiced] => 1
)
)
我已经以这种方式工作了。我不确定这是实现这一目标的最佳方法,但这是我的代码:
$tasks['tasks'] = array() ;
foreach($result as $key=>$value){
$i = 0;
if(!is_null($key)){
foreach($result as $value){
if(!is_null($value)){
$index = array_keys($value);
foreach($index as $ind){
if($ind == $i){
$tasks['tasks'][$i]['job_id'] = $lastInsertedId;
$tasks['tasks'][$i][$key] = $result[$key][$i];
}
}
}
$i++;
}
}
}
【问题讨论】:
-
你有什么“麻烦”?你有任何错误吗?目前和预期的结果是什么?
-
我已经编辑了问题,结果是我在 $result 上执行 print_r 时得到的结果。我需要按数组键对结果进行分组。例如,一个数组中索引为 0 的所有键。 @jedrzej.kurylo
标签: jquery laravel foreach insert clone