Php Laravel,将数据透视表值附加到Auth::user,what';什么不见了/错了?
我正在尝试让Auth::user()->building返回它所附加到的建筑ID。现在它返回空值。我做错了什么?我应该在某处明确声明什么吗?多谢各位 我的桌子: 用户(id、名称等) 建筑物(id、名称) building_user(building_id,user_id)具有值(7=building_id,1=user_id),主键位于两者的组合上Php Laravel,将数据透视表值附加到Auth::user,what';什么不见了/错了?,php,laravel,Php,Laravel,我正在尝试让Auth::user()->building返回它所附加到的建筑ID。现在它返回空值。我做错了什么?我应该在某处明确声明什么吗?多谢各位 我的桌子: 用户(id、名称等) 建筑物(id、名称) building_user(building_id,user_id)具有值(7=building_id,1=user_id),主键位于两者的组合上 应用程序\用户 及 应用程序\建筑 ... public function users() { return $this-&
应用程序\用户 及 应用程序\建筑
...
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\u id列。首先,您不需要第三个表(
building\u user
),除非您另有想法
您需要在users
表中进行一些修改
- 添加名为
的字段,用于存储用户所属的相应building\u idbuilding\u id
- 将
与建筑物id
表上的建筑物
参考建立关系id
Auth::user()->building()->id
为您提供登录用户的建筑id
您在用户和建筑中都将值设置为$fillable了吗?@NaveenNiraula我只为User.php设置了它-受保护的$fillable=['name','email','password'];
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)