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