【问题标题】:Laravel ORM relationship returns null only on id > 1Laravel ORM 关系仅在 id > 1 时返回 null
【发布时间】:2020-05-11 12:54:36
【问题描述】:

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

用户.php

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

文章.php

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

问题是只有在阅读 id 为 1 的文章时才能访问该关系

url.com/clanek/1

App\User not returning null

但是当 url 是 url.com/clanek/2 只给出“null”。

【问题讨论】:

  • 你能分享你的路线clanek/{id}和控制器吗?

标签: php laravel eloquent orm


【解决方案1】:

如下改变关系。

User.php

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

Article.php 中会是 belongsTo

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

【讨论】:

  • 工作,谢谢,我想知道为什么我没有尝试过。将在几秒钟内接受
【解决方案2】:

你必须这样改变

User.php

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

Article.php

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

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 2019-01-12
    • 2016-03-31
    相关资源
    最近更新 更多