Проверьте, есть ли друзья в laravel

Как проверить, является ли Auth: user () другом текущего $ user?

Это будет размещено в профилях, чтобы показать кнопки добавления друзей или ожидающие запросы и т. Д.? Я пробовал, отношения с другими методами и где предложения, но все равно безуспешно.

Пожалуйста, помогите, большое спасибо!

Чтобы возобновить здесь, мне нужно что-то вроде этого:

Мне нужно что-то вроде:

where user1_id = $user->id AND user2_id = Auth::user() AND is_friend = 1
OR
where user1_id = Auth::user() AND user2_id = $user->id AND is_friend = 1

Все это, благодаря красноречивому Ларавелу?

Я следовал этому уроку
(Система дружбы с Laravel: отношения многие ко многим) о том, как установить двусторонние отношения, и у меня есть следующее:

Таблицы базы данных

-users table-
id
username
age

-friends table-
id ->increments
user1_id ->reference->users.id
user2_id ->reference->users.id
is_accepted - return bool true or false, 1 or 0

UserController.php

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\User;
use App\Friend;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function getIndex($user)
{

$relation = User::with('friendsOfMine', 'friendOf', 'profileComments')
->where('username', $user);

$user = User::findOrNew($user)
->where('username', $user)
->first();

return view('users.profile')
->with('amigos', $relation)
->with('user', $user);
}

Модель User.php

//friendship i've started
function friendsOfMine()
{
return $this->belongsToMany('App\User', 'friends', 'user1_id', 'user2_id')
->wherePivot('is_friend', '=', 1) // to filter only accepted
->withPivot('is_friend'); // or to fetch accepted value
}

// friendship that I was invited to
function friendOf()
{
return $this->belongsToMany('App\User', 'friends', 'user2_id', 'user1_id')
->wherePivot('is_friend', '=', 1)
->withPivot('is_friend');
}

// accessor allowing you call $user->friends
public function getFriendsAttribute()
{
if ( ! array_key_exists('friends', $this->relations)) $this->loadFriends();

return $this->getRelation('friends');
}

protected function loadFriends()
{
if ( ! array_key_exists('friends', $this->relations))
{
$friends = $this->mergeFriends();

$this->setRelation('friends', $friends);
}
}

protected function mergeFriends()
{
return $this->friendsOfMine->merge($this->friendOf);
}

Модель Friend.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Friend extends Model
{
protected $table = 'friends';
}

Я пробовал

$friendsAll = Friends::with('User')
->where('user1_id', $user)
->orWhere('user2_id', $user)
->first();

4

Решение

Попробуй это:

$User = Auth::user();
$RequestedUser = User::find(Request::input('user_id'));

$Friendship = Friend::with('User')
->whereIn('user1_id', [$User->id, $RequestedUser->id])
->whereIn('user2_id', [$User->id, $RequestedUser->id])
->where('is_friend', '=', 1)
->first();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]