【发布时间】:2014-09-22 20:35:48
【问题描述】:
我正在尝试使用 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; } -
好的,感谢您花在上面的时间,我成功了!
-
我知道这是一个旧帖子,但是您如何验证好友请求?您使用自己的 Friend 模型吗?