我对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”。我可以检索用户的数据,但不能检索关联的代码。感谢您的帮助!
您应该将用户模型中的代码关系重命名为复数:
public function codes()
{
return $this->hasMany('App\Code');
}
然后:
$user= Users::with('codes')->find($id);
dd($user->codes);
请注意,find仅检索一个用户,因此将变量'$ user'命名为'$ users'
代码中的问题对:
$users = Users::find($id)
返回带有相应的$id
的单个记录,因此命名$users
有点误导。find()
将其定义为Users,不知道哪一个是正确的,但是所有型号名称应为single,因此User
not Users
。code()
,但是您称它为$users->codes
是错误的,应该是$users->code
。