【问题标题】:Has many return null value laravel有很多返回空值 laravel
【发布时间】:2020-05-17 11:55:48
【问题描述】:

我在使用 laravel 的 OnetoMany 功能时遇到问题。我的目标是检索用户的不同代码: 代码模型:

 public function users(){
    return $this->belongsTo('App\Users');
}

用户模型:

    public function code(){
    return $this->hasMany('App\Code');
}

还有我的控制器:

        $users= Users::find($id);
    dd($users->codes);

但是这个函数返回“null”。 我可以检索我的用户数据,但不能检索相关代码。 感谢您的帮助!

【问题讨论】:

  • 仔细检查表codeusers的引用ID和主键

标签: php laravel eloquent has-many laravel-7


【解决方案1】:

您应该将用户模型中的代码关系重命名为复数:

public function codes()
{
    return $this->hasMany('App\Code');
}

然后:

  $user= Users::with('codes')->find($id);
    dd($user->codes);

请注意 find 只检索一个用户,因此将变量命名为 '$user' 而不是 '$users'

【讨论】:

    【解决方案2】:

    您的代码中有几个问题:

    • $users = Users::find($id) 返回一个单条记录 对应的$id 所以命名 $users 有点误导。
    • 在您的问题中,您的模型类被定义为 User 但在调用时 它与find() 一起定义为Users,不知道哪个是正确的,但所有 模型名称应该是单个,所以User 不是 Users
    • 在您的 User 模型中,函数的名称是 code() 但您 称它为$users->codes 是错误的,它应该是$users->code

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-06
      • 2014-04-10
      • 2019-11-27
      • 2016-06-24
      • 2021-08-18
      • 2017-09-13
      • 2021-03-02
      • 2020-06-11
      相关资源
      最近更新 更多