Php 具有多个返回空值laravel

Php 具有多个返回空值laravel,php,laravel,eloquent,has-many,laravel-7,Php,Laravel,Eloquent,Has Many,Laravel 7,我对laravel的OnetoMany功能有问题。我的目标是检索用户的不同代码: 代码模型: public function users(){ return $this->belongsTo('App\Users'); } 用户模型: public function code(){ return $this->hasMany('App\Code'); } 和我的控制器: $users= Users::find($id); dd($

我对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”。 我可以检索用户的数据,但不能检索关联的代码。
谢谢你的帮助

代码中有几个问题:

  • $users=users::find($id)
    返回一条带有相应
    $id
    的记录 它
    $users
    有点误导
  • 在您的问题中,您的模型类被定义为User,但在调用 使用
    find()
    将其定义为用户,不知道哪一个是正确的,但所有 型号名称应该是单个的,因此
    用户
    不是
    用户
  • 在您的用户模型中,函数名为
    code()
    ,但您 称它为
    $users->code
    ,这是错误的,应该是
    $users->code

代码中有几个问题:

  • $users=users::find($id)
    返回一条带有相应
    $id
    的记录 它
    $users
    有点误导
  • 在您的问题中,您的模型类被定义为User,但在调用 使用
    find()
    将其定义为用户,不知道哪一个是正确的,但所有 型号名称应该是单个的,因此
    用户
    不是
    用户
  • 在您的用户模型中,函数名为
    code()
    ,但您 称它为
    $users->code
    ,这是错误的,应该是
    $users->code

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

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

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

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

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

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

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

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

仔细检查表的参考id和主键
code
users
仔细检查表的参考id和主键
code