【问题标题】:Laravel : One to many relational data updateLaravel:一对多关系数据更新
【发布时间】:2018-09-26 01:16:42
【问题描述】:

我有以下代码:

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_duration_6dog_duration_12dog_duration_36数组在元素大小方面可以不同,

如何传递 null 以避免异常 Undefined offset: 2

【问题讨论】:

    标签: php arrays database laravel laravel-5.5


    【解决方案1】:

    只需添加一个检查即可避免偏移异常。:

    isset($request->dog_duration_6[$key]) ? $request->dog_duration_6[$key] : null

    为所有人。

    【讨论】:

    • 在 PHP 7 中,您可以使用带有三元运算符的较短形式:$request->dog_duration_6[$key] ?? null; 这将使用 isset() 执行检查,如果设置了则返回值。否则返回null
    【解决方案2】:
    'duration_6' => $request->dog_duration_6[$key] ?? null,
    

    【讨论】:

    • 解释这个答案:$request->dog_duration_6[$key] ?? null; 这将与isset() 进行检查,如果设置了则返回值。否则返回null
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多