Php Laravel:一对多关系数据更新
我有以下代码:Php Laravel:一对多关系数据更新,php,arrays,database,laravel,laravel-5.5,Php,Arrays,Database,Laravel,Laravel 5.5,我有以下代码: foreach ($request->dog_vaccine_required as $key => $vaccine) { $serviceVaccination = \App\UserServiceVaccination::updateOrCreate([ 'user_service_id' => $id, 'vaccine_id' => $vaccine ],[ 'specie' =&g
foreach ($request->dog_vaccine_required as $key => $vaccine) {
$serviceVaccination = \App\UserServiceVaccination::updateOrCreate([
'user_service_id' => $id,
'vaccine_id' => $vaccine
],[
'specie' => 'Dog',
'user_service_id' => $id,
'vaccine_id' => $vaccine,
'duration_6' => $request->dog_duration_6[$key],
'duration_12' => $request->dog_duration_12[$key],
'duration_36' => $request->dog_duration_36[$key]
]);
}
现在,来自表单的数据是:
这给了我一个例外:
未定义的偏移量:2
请求dog\u duration\u 6
,dog\u duration\u 12
,dog\u duration\u 36
数组在元素大小方面可能不同
如何传递null以避免异常
未定义的偏移量:2
?只需添加一个类似于避免偏移异常的检查:
'duration_6' => $request->dog_duration_6[$key] ?? null,
isset($request->dog_duration_6[$key])$请求->dog_duration_6[$key]:null
对于所有这些选项。只需添加一个复选框,以避免偏移异常:
isset($request->dog_duration_6[$key])$请求->dog_duration_6[$key]:null
在PHP7中,您可以使用三元运算符的较短形式:
$request->dog\u duration\u 6[$key]??无效
这将使用isset()
执行检查,如果设置了,则返回值。否则它将返回null
。在PHP7中,可以使用三元运算符的较短形式:$request->dog\u duration\u 6[$key]??无效
这将使用isset()
执行检查,如果设置了,则返回值。否则它将返回null
。为了解释这个答案:$request->dog\u duration\u 6[$key]??无效
这将使用isset()
执行检查,如果设置了,则返回值。否则它将返回null
。为了解释这个答案:$request->dog\u duration\u 6[$key]??无效
这将使用isset()
执行检查,如果设置了,则返回值。否则它将返回null
。