我遇到这个问题,即使数组包含一个索引位置,当我保存到数据库时行也会重复。我在这里错过了什么吗?
foreach($params['service'] as $key => $value){
$data['name'] = $value;
$data['price'] = $params['price'][$key];
$data['business_id'] = $params['business_id'];
$service = new Service($data);
$service->save();
}
$ params的数据
array:5 [▼
"business_id" => "1"
"service" => array:1 [▼
0 => "web development"
]
"price" => array:1 [▼
0 => "R4500"
]
"submit" => null
]
这些都是重复的
1 web development R4500 1 2018-08-30 07:24:34 2018-08-30 07:24:34
2 web development R4500 1 2018-08-30 07:24:34 2018-08-30 07:24:34
不幸的是,@ Rathod提供的答案也会产生重复,但我注意到当我向阵列添加多个数据时,如下所示,它保存没有重复。
array:5 [▼
"business_id" => "1"
"user_id" => "1"
"service" => array:3 [▼
0 => "web development"
1 => "mobile development"
2 => "internet marketing"
]
"price" => array:3 [▼
0 => "R4500"
1 => "R8900"
2 => "R5600"
]
"submit" => null
]
这是完整的功能
public function createService(array $params) : Service
{
// dd($params);
try {
foreach($params['service'] as $key => $value){
$service = new Service();
$service->service = $value;
$service->price = $params['price'][$key];
$service->business_id = $params['business_id'];
$service->save();
}
return $service;
} catch (QueryException $e) {
throw new CreateServiceInvalidArgumentException($e->getMessage(), 500, $e);
}
}
尝试以下简单方法:
foreach($params['service'] as $key => $value){
$service = new Service();
$service->name = $value;
$service->price = $params['price'][$key];
$service->business_id = $params['business_id'];
$service->save();
}
我希望它运作正常。
那些我想把自己打成傻瓜的时刻......我只是注意到我是通过ajax发送相同的数据..我一定忘记了我已经做过了。感谢大家花时间为我看这个。