我正在尝试在两个模型之间建立关系。我的第一个模型是用户模型,第二个模型是公司。
我尝试在User模型中添加hasMany('App \ Comapny')属性,而在公司模型中,则添加belongsTo('App \ User')。
//在用户模型中
public function companies(){
return $this->hasMany('App\Company');
}
//在公司模型中
public function user(){
return $this->belongsTo('App\User');
}
//在控制器中:
$user_id = auth()->user('id');
$user = User::find($user_id);
return view('devices.show')->with('companies', $user->companies);
使用“ $ user-> comapnies”时,它应该返回一个包含我的用户拥有的所有公司的数组,但是,它将返回以下消息:
此集合实例上不存在属性[companies]。
谢谢,欢迎提供帮助
答案 0 :(得分:0)
感谢您的快速回复。我知道了,问题出在这一行:
$user_id = auth()->user('id');
应该改为
$user_id = auth()->user()->id;
答案 1 :(得分:0)
尝试一下,
$user_id = auth()->user->id;
$user = User::with('companies')->where('id', $user_id)->first();
return view('devices.show', compact('user'));
然后,您可以使用访问公司关系 $ user-> company [index]-> 在视图中。