Laravel ORM关系仅在id> 1时返回null

我最近发现了一个问题。 我有2个模型,文章和用户。我已经定义了这样的模型关系。

User.php

     public function articles()
 {
     return $this->hasMany(Articles::class,'written_by');
 }

Article.php

    public function writer()
{
    return $this->hasOne(User::class, 'id');
}

问题是,只有在阅读ID为1的文章时,该关系才可访问

url.com/clanek/1

App\User not returning null

但是当网址是url.com/clanek/2时 仅给出“ null”。

评论
  • 花样年华
    花样年华 回复

    你必须这样改变

    User.php

    public function articles(){
        return $this->hasMany(Article::class,'written_by','id');
    }
    

    Article.php

    public function writer(){
        return $this-> belongsTo(User::class);
    }
    
  • msed
    msed 回复

    如下更改关系。

    User.php

    public function articles()
    {
       return $this->hasMany(Articles::class,'written_by','id');
    }
    

    并在Article.php中将属于

    public function writer()
    {
       return $this->belongsTo(User::class,'written_by','id');
    }