仍然是laravel的新手
我有以下表格
user
id
first_name
last_name
educations
id,
user_id //references user id
type
现在在我的user
模型中,我希望获得特定用户的教育,这可以是很多
所以用户可以有很多教育,但每个教育属于一个用户。
所以我的user
模型中有
public function education()
{
return $this->hasMany('App\ApplicantEducation','id','user_id');
}
在我的Education
模型中
public function user()
{
return $this->belongsTo('App\User','user_id','id');
}
但上述操作失败,我无法检索用户特定的教育
我哪里错了?
答案 0 :(得分:1)
更改return $this->hasMany('App\ApplicantEducation','id','user_id');
到return $this->hasMany('App\ApplicantEducation','user_id', 'id');
您还会忽略id
和user_id
。
由于您的foreign_key格式正确,您还可以使用这个简单的代码
class User{
public function education()
{
return $this->hasMany('App\ApplicantEducation');
}
}
Class Educations{
public function user()
{
return $this->belongsTo('App\User');
}
}
答案 1 :(得分:1)
试试这个:
在User
模型:
public function educations()
{
return $this->hasMany('App\ApplicantEducation', 'user_id');
}
<{1>}模型中的:
Education
答案 2 :(得分:1)
在这里,
$this->hasMany('App\ApplicantEducation','id','user_id');
在上面的语句中,第一个参数应该是Model第二个应该是外键而第三个是来自Education模型的任何其他键。 这里,第二个和第三个参数不是强制性的。
在用户模型中
class User...{
public function education()
{
return $this->hasMany('App\ApplicantEducation');
}
教育模式
public function user()
{
return $this->belongsTo('App\User');
}
此处,其他参数不是强制性的,可能是您的添加参数创建问题,
现在您可以通过
来检索您的用户 $user = User::with('education')->get();
这可以检索所有受过教育的用户 我希望它有所帮助,谢谢你,快乐编码。
答案 3 :(得分:1)
你应该试试这个:
教育模式
public function user()
{
return $this->belongsTo('App\User','user_id);
}
用户模型
public function education()
{
return $this->hasMany('App\ApplicantEducation');
}