[英]Laravel, attach a pivot table value to Auth::user, what's missing/wrong?
我正在尝试使用Auth :: user()-> building来返回其附加到的建筑物ID。 现在,它返回Null。 我究竟做错了什么? 我应该在某处明确声明一些内容吗? 谢谢。
我的桌子:
用户 (ID,名称等)
建筑物 (编号,名称)
building_user (building_id,user_id)具有值(7 = building_id,1 = user_id),并且两个键的主键组合在一起。
应用程序\\用户
...
public function building(){
return $this->belongsTo('App\Building');
}
...
和
应用程序\\建筑
...
public function users()
{
return $this->hasMany('App\User');
}
...
**编辑**
我尝试在视图上执行$ building-> users,并收到错误
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.building_id' in 'where clause' (SQL: select * from `users` where `users`.`building_id` = 7 and `users`.`building_id` is not null)
似乎正在尝试不进行关系搜索。 然后在用户表中搜索building_id列。
首先,除非您有其他需要,否则不需要第三张表( building_user
)。
您需要在users
表中进行一些修改。
building_id
的字段,用于存储用户所属的相应building_id。 building_id
与buildings
表上的参考id
buildings
关系。 当然,删除第三张表,如果完成上述步骤,则不需要它。
然后, Auth::user()->building()->id
为您提供已登录用户的建筑物ID。
https://laravel.com/docs/5.5/eloquent-relationships#one-to-many-inverse
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.