有很多 return 个空值 laravel

Has many return null value laravel

我在使用 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)returns一条单条记录用对应的$idso命名 $users 有点误导。
  • 在你的问题中你的模型 class 被定义为 User 但是当调用 它与 find() 你定义它作为 Users, 不知道哪个是正确的但所有 模型名称应该是 single,所以 User not Users.
  • 在你的 User 模型中函数的名称是 code() 但你 称它为 $users->codes 这是错误的它应该是 $users->code.

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

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

然后:

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

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