2 回答
TA贡献1873条经验 获得超9个赞
在您的用户模型中,关系应该是belongsTo()
public function subject(){
return $this->belongsTo('App\Subject','subject_id','id');
}
现在您可以访问您的主题名称 Auth::user()->subject->subject_name
正如您所说,一个用户只有一个主题,因此用户 只属于一个主题。
主题可以有多个用户,这意味着HasMany。 用户模型 ->所属主题 主题模型 ->拥有用户的HasMany
请在此处查看更多信息。https://laravel.com/docs/5.8/eloquent-relationships#one-to-many
TA贡献1872条经验 获得超3个赞
在您的用户模型中,关系应该是belongsTo()
public function subject(){
return $this->belongsTo('App\Subject','subject_id','id');
}
现在您可以访问您的主题名称 Auth::user()->subject->subject_name
正如您所说,一个用户只有一个主题,因此用户 只属于一个主题。
主题可以有多个用户,这意味着HasMany。 用户模型 ->所属主题 主题模型 ->拥有用户的HasMany
请在此处查看更多信息。https://laravel.com/docs/5.8/eloquent-relationships#one-to-many您的belongsToMany关系导致了问题。它导致 laravel 认为有一个名为subject_user的数据透视表,但遗憾的是没有数据透视表。所以改变你的关系到belongsTo
public function subject(){
return $this->belongsTo('App\Subject','subject_id');
}
这是另一个问题。在可填充数组中的用户模型中,没有 subject_id。所以subject_id 不会保存在数据库中。将此添加到您的可填充数组中。
- 2 回答
- 0 关注
- 143 浏览
添加回答
举报