Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:一对多关系数据更新_Php_Arrays_Database_Laravel_Laravel 5.5 - Fatal编程技术网

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