[英]laravel, use of updateOrCreate inside forloop
我想使用 updateOrCreate 以防止重复我有商店并且需要为每个商店存储其工作时间(天,开放时间,关闭时间,可用)
可用日期 打开 关闭
星期一 [复选框] [输入] [输入]
星期二 [复选框] [输入] [输入]
星期三 [复选框] [输入] [输入]
但是在插入新值时我仍然会重复
Model:
protected $table = 'storedays';
protected $fillable = ['storeinfo_id', 'day_id','open_time','close_time','available'];
protected $primaryKey = 'id';
Controller:
public function store(Request $request)
{
$store_id=$request->storeinfo_id;
$open_time = $request->input('open_time');
$close_time = $request->input('close_time');
$available=$request->input('available');
foreach ($request->input('day_id') as $key => $value) {
if ( ! isset($available[$key])) {
$available[$key] = 0;
}
else
{
$available[$key] = 1;
}
Storeday::updateOrCreate([
'storeinfo_id' => $store_id,
'day_id' => $value,
'open_time' => $open_time[$key],
'close_time' => $close_time[$key],
'available' => $available[$key],
]);
}
return response()->json(['data' => trans('message.success')]);
}
updateOrCreate
function 需要 2 个参数、匹配条件和额外值。 您需要将其更改为以下内容:
Storeday::updateOrCreate([
'storeinfo_id' => $store_id,
'day_id' => $value,
],[
'open_time' => $open_time[$key],
'close_time' => $close_time[$key],
'available' => $available[$key],
]);
首先,它将查看表中是否有商店 ID 和日期 ID 的条目。 如果没有,它将创建一个新行。
您可以在此处了解有关更新或updateOrCreate
的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.