试图在FriendController上执行以下查询
$friends = Auth::User()->friends;
这是用户模型上的好友功能
public function friends()
{
return $this->belongsToMany('App\Friend', 'friends', 'user_id', 'friend_id');
}
但是在到达路线时出现以下错误
Illuminate \ Database \ QueryException(42000) SQLSTATE [42000]:语法错误或访问冲突:1066不是唯一的表/别名:'friends'(SQL:选择
friends
作为friends
user_id
。pivot_user_id
,friends
。friend_id
作为{{1}的pivot_friend_id
内部联接friends
内部friends
的{{1}}。friends
=id
。friends
,其中friend_id
。friends
= 2)
答案 0 :(得分:0)
数据透视表几乎永远不会有模型。如果您尝试将friends
用作两个用户的数据透视表,则该关系应引用App\User
,而不是App\Friend
(或代表当前类的静态)。>
public function friends()
{
return $this->belongsToMany(static::class, 'friends', 'user_id', 'friend_id');
}
由于朋友不是实体,而是关系,您希望返回用户集合,而不是“朋友”。