Как проверить состоит ли модель в отношениях с конкретной моделью?
У меня реализована система отношений подписчиков и авторов. Мне нужно узнать находится ли определенный автор в списке подписок другого юзера для того чтобы отображать кнопку "подписаться" или "отписаться"
Ну, почти то же самое сделал я, только вместо exists написал toArray. Если она пустая, то пишу подписаться, если нет, отписаться. Только скобки после subscribers не добавил. Вот что у меня получилось
Шамиль Хайрулаев, для проверки коллекцией есть метод $user->subscribers->contains($subscriber);
$isFollowing логически может быть только boolean значение иначе говнокод.
А как разорвать между ними отношения не знаешь?(Отписаться)
Это нужно спрашивать в новом вопросе с примером кода.
Вы написали ерунду. Почему у вас $isFollowing - это массив? Решение, которое вам написали, намного лучше. Во-первых, оно работает правильно, а не как ваше, а во-вторых, из БД не достаётся лишняя информация ("скобки после subscribers" возвращают объект запроса к БД).
Алексей Уколов, Так я и не говорю, что мое решение стоит на одном уровне с его. Я просто говорю, как это сделал Я, когда не знал правильного решения. Но было бы хорошо если б ларавел сделал специальную функцию, которая проверяла наличие связи
Шамиль Хайрулаев, с коллекцией (там где без скобок) есть смысл работать только в одном случае - если все модели из коллекции в этом екшене используются. Например, подписчики жадно загружены для показа. Тогда юзать contains. В остальном бд запросы.