问题描述
我有一个订单表和一个分配产品表(order_items) 创建新订单时,一切正常,项目已按原样保存。
$order = Orders::create($request->all());
if (!empty($order)) {
foreach ($request->get('items') as $item) {
$item['order_id'] = $order->id;
OrderItems::create($item);
}
}
问题在于,无论出于何种原因,我以后都无法添加项目。 我没有收到任何错误或错误的答复,即使order_items表的自动增量增加了。
Orders::findOrFail($id)->update($request->all());
if(isset($data['items']) && is_array($data['items'])) {
foreach ($data['items'] as $item) {
if (!empty($item['id'])) {
OrderItems::findOrFail($item['id'])->update($item);
continue;
}
$item['order_id'] = $id;
OrderItems::create($item);
}
}
解决方法
如果找不到您的商品,这将引发异常,并且脚本的退出将停止。
OrderItems::findOrFail($item['id'])->update($item);
您需要捕获这样的异常:
try {
OrderItems::findOrFail($item['id'])->update($item);
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $exception) {
$item['order_id'] = $id;
OrderItems::create($item);
}