// Создается в модели User(как пример)
//Получаем список всех друзей конкретного пользователя
public function friends()
{
return $this->belongsToMany(
'App/User', //Имя модели, к которой мы подключаемся, альтернативно можно записать как User::class
'friends', // промежуточная таблица в которой у нас храняться соотношения
'friend_one_id ', // Имя первого ключевого поля, по нему мы выбираем только для данного юзера
'friend_two_id ' // Второе ключевое поле, по нему мы потом будем делать отбор
)->withTimestamps(); // указываем, что нас могут интересовать даты создания и обновления(если нужно)
}
// Обратная операция.
public function hasFriendsFor()
{
return $this->belongsToMany(
'App/User',
'friends',
'friend_two_id ',
'friend_one_id '
)->withTimestamps();
}
$data = \Auth::user()->friends()->where('friend_two_id', $checked_user_id);
if(!$data->count()){
print 'Он нам не друг';
}
Стандартная темная darkula.
Касательно разницы в friends() и friends, в данном конкретном случае разницы никакой толком нет, так как нет аргументов у функции friends, можно записать и так и так(т.е опустить скобки), но мне все же привычнее при обращении указывать именно со скобками, так не путаешься, где у нас метод, а где переменная.
Но допустим если несколько модифицировать код который у нас написан, можно сделать вот такую запись:
И в таком случае можно записать наш пример как
$data = \Auth::user()->friends(1)