有很多返回空值的laravel

问题描述 投票:0回答:2

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

php laravel eloquent has-many laravel-7
2个回答
1
投票

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

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

然后:

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

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


1
投票

代码中的问题对:

  • $users = Users::find($id)返回带有相应的$id单个记录,因此命名$users有点误导。
  • 在您的问题中,您的模型类被定义为User,但是在调用时用find()将其定义为Users,不知道哪一个是正确的,但是所有型号名称应为single,因此User not Users
  • 在您的[[User模型中,函数的名称为code(),但是您称它为$users->codes是错误的,应该是$users->code
© www.soinside.com 2019 - 2024. All rights reserved.