5
我想在laravel 5做一个友谊系统,我被卡住了。 我有一个看起来像这样的friends_user表:Laravel - 友谊
- ID
- USER_ID
- friend_id
- 状态
这里是点,我去一个用户页面,以及ii想看看我与这位用户的关系如何,4解决方案:
- 我们是朋友
- 我们不是
- 他不接受该请求尚未
- 我要确认与否。
我想创建一个方法,检查用户是否与其他,简单的朋友。 我有一个“状态”栏这是一个布尔值(0表示待定,1个用于朋友) 对我来说,完美的解决方案是能够在一个方法来检查:
- 用户是朋友, ('user_id',Auth :: user() - > id) - >和('friend_id',$ friend-> id)或者相反('user_id',$ friend-> id) - >和(' friend_id',Auth :: user() - > id),它必须检查2种感官
- 我发送了请求并且必须等待他的回答
- 我收到请求并且必须接受它。
- 我们不是朋友,所以我可以加他。
所以,如果你能告诉我在哪里,我错在这里我,这里是我的逻辑(只是为了检查,如果用户的朋友):user.php的
public function isFriend($slug)
{
// Get both user
$user = Auth::user();
$receiver = User::where('slug', $slug)->first();
// get list of friends (so who have status = 1)
$result = Friends::where('status', 1);
// Get users where user id is equal to connected
$result = $result->where('user_id', $user->id)->where('friend_id', $receiver->id);
$result = $result->orWhere('user_id', $receiver->id)->where('friend_id', $user->id);
$result = $result->get();
if(count($result) == 0)
return false;
return true;
}
我在我看来,做这些检查后。
这很有效,但只有当我(当前用户)发送请求,但如果它是相反的,即使状态为0,它也会返回给我的用户。我认为我的$结果会擦除其他的isn'它呢?那么解决方案是什么?
我希望这很清楚,如果你能告诉我如何以干净的方式做到这一点,那就太好了。
退房这一系列.. https://laracasts.com/series/build-a-laravel-app-from-scratch书中有关于朋友 – bretterer
你弄乱的东西一点点教训你为什么有朋友桌?朋友不是用户?如果是这样,你为什么不在用户表上有多对多的自我关系? –
@bretterer您需要订阅才能访问视频。 (但如果你想了解laravel和php,这是一个非常好的投资9美元的方法) – Needpoule