Laravel一对多关系|未定义的偏移量|在更新

时间:2018-03-16 11:26:08

标签: php laravel eloquent one-to-many relation

我的项目中有两个模型PostAuthor

  

发布=> return $this->hasMany('App\Author')

     

作者=> return $this->belongsTo('App\Post')

目前我在Post中有一条记录,在Author中有两条记录,现在我从列表中删除一条记录并保存它,它给了我例外。

  

未定义的偏移量:1

以下是代码:

    $post = \App\Post::with('authors')->where('id', $id)->first();
    $post->user_id = Auth()->user()->id;
    $post->name = $request->name;
    foreach ($post->authors as $key => $author) {
        $author->post_id = $post->id;
        $author->life_span = $request->life_span[$key];
        $author->duration = $request->duration[$key];
        $author->save();
    }
    $post->save();

2 个答案:

答案 0 :(得分:1)

我没有得到你想要用这个foreach做的事情,但添加if支票

foreach ($post->authors as $key => $author) {
    $author->post_id = $post->id;
    if(isset($request->life_span[$key]) && isset($request->duration[$key])) {
      $author->life_span = $request->life_span[$key];
      $author->duration = $request->duration[$key];
    }
    $author->save();
}

答案 1 :(得分:0)

Undefined offset: 1

这意味着数组没有索引或键。

请检查

  

$请求 - > life_span [$键];

它存在吗?可能你错过了。