模型关系找不到属性

时间:2019-05-25 14:01:05

标签: laravel eloquent

我正在尝试在两个模型之间建立关系。我的第一个模型是用户模型,第二个模型是公司。

我尝试在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]。

谢谢,欢迎提供帮助

2 个答案:

答案 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]-> 在视图中。

相关问题