我想使用Laravel创建一个好友系统(初次尝试),但我被关系所阻碍。这是问题所在:有一个用户表和一个朋友表,其中包含以下列:
friends: id, user_id, friend_id, accepted.
看起来是多对多关系,这里是我在User类上设置的内容:
class User extends Eloquent {
function friends()
{
return $this->belongsToMany('User');
}
}
但是当我尝试一个:
$friends = User::find($id)->friends()->get()
我有这个错误:
Base table or view not found: 1146 Table 'base.user_user' doesn't exist
我想获取用户的好友列表,不管是用户发送过邀请还是收到过邀请都可以。因此,用户可以基于 user_id 或 friend_id,并且根据该列检索另一个用户的数据。
有什么思路吗?谢谢!
编辑:这是我使用的代码:
$usersWithFriends = User::with('friendsOfMine', 'friendOf')->get();
$user = User::find(Auth::id())->friends;
foreach($user as $item) {
echo $item->first()->pivot->accepted;
}
foreach ($user->friends as $friend) { $friend->pivot->accepted; }
- Jarek Tkaczyk