Anonymous
Ему нужны просто сервисы, которые будут данные получать
Anonymous
У него же агрегатор
Konstantin
ну смотри у него есть несколько источников newsApi1, newsApi2, newsApi3
Konstantin
Ему требуется 1 метод - getNewsFeed из всех 3х источников
Anonymous
ближе склоняюсь к идеии Кости, один репозиторий, который будет сводить все в 1 поток если есть такая необходимость
Anonymous
репозиторий про другое
Anonymous
Называй это серсивом
Anonymous
ну де-факто да, да вот только репозиторий у меня тоже будет
Anonymous
хех
Anonymous
вот согласно статье кодить буду
Anonymous
http://dfg.gd/blog/decoupling-your-code-in-laravel-using-repositiories-and-services
Anonymous
делайте что хотите
Konstantin
Ну ты б показал пример
Anonymous
я вообще-то сейчас реализую и закину сюда, если захотите посмотрите скажите как вам
Konstantin
Не в контроллере же все сводить
Anonymous
ну понятно в контроллер, только нужные данные выбрасывать
Anonymous
в принципе идея здравая вынести все в отдельные сервисы
Anonymous
для следующего рассширения хорошо
Konstantin
для следующего рассширения хорошо
У каждого сервиса свои настройки
Konstantin
Тут иначе вообще никак, если конечно не хардкодить
Anonymous
я с лаварелем серьезно начал работать только сейчас, когда работаешь с базой только вообще все просто
Anonymous
забиндил данные в духе Product::getAll() во вьюху и все
Anonymous
Палю тему: - Пилим сервисы которые умеют работать с внешними API - Пилим сервис который объеденяет эти сервисы - Пилим репозиторий который будет складывать данные куда нам нужно Делаем так: - Получаем данные из всех API и приводим их к одному формату. - Передаем полученные данные в репозиторий который их сохранит.
Konstantin
Ну а мы про что?
Konstantin
Вопрос только зачем сервис который всех объединяет
Anonymous
Я хз про что вы
Anonymous
Ему требуется 1 метод - getNewsFeed из всех 3х источников
Konstantin
Ладно я фронтовик же)
Anonymous
Вообще агрегатор нужен если ему нужно в одном месте сразу все получать.
Anonymous
Если нет, то и агрегатор не надо
Obazure
Хай гайс)) Вопрос в лоб))
Anonymous
га
Obazure
Как можно упростить?
Obazure
$tmp = DB::table('users') ->join('pivot_user_group', 'users.id', '=', 'pivot_user_group.user_id') ->join('groups', 'pivot_user_group.group_id', '=', 'groups.id') ->where('pivot_user_group.user_id', '=', $user->id) ->where('pivot_user_group.group_id', '=', $group_id) ->where('pivot_user_group.status', '=', '0') ->where('users.is_delete', '=', '0') ->where('pivot_user_group.is_delete', '=', '0') ->where('groups.is_delete', '=', '0') ->count();
Anonymous
чует моя душа, что проблемы не с запросами
Anonymous
по идеии такой вот херни возникать не должно
Obazure
база до жути нормализованная))
Obazure
отдельно список пользователей
Obazure
отдельно список групп
Obazure
отдельно таблица с их связями
Obazure
запрос норм работает)) только вот страшный он очень))
Obazure
оооо, заметил в таблице пользователей нету колонки is_delete
Obazure
запрос на одну строчку короче)
Obazure
$tmp = DB::table('users') ->join('pivot_user_group', 'users.id', '=', 'pivot_user_group.user_id') ->join('groups', 'pivot_user_group.group_id', '=', 'groups.id') ->where('pivot_user_group.user_id', '=', $user->id) ->where('pivot_user_group.group_id', '=', $group_id) ->where('pivot_user_group.status', '=', '0') ->where('pivot_user_group.is_delete', '=', '0') ->where('groups.is_delete', '=', '0') ->count();
Obazure
Obazure
Obazure
Anonymous
чет ты не то делаешь
Obazure
😂😂 привет нормализация, только заговорили о тебе))
Obazure
шучу
Obazure
Как ты думаешь где тут косяк зарыт?
Anonymous
Связи нормальные пропиши
Anonymous
И используй их в модели
Anonymous
И не будет ебатни с querybuilder
Anonymous
is_delete -> в ларавел можно использовать soft deletes, он сам будет проверять
Obazure
Эт и есть querybuilder
Anonymous
Эт и есть querybuilder
И НЕ будет ебатни с querybuilde
Anonymous
Пропиши в модели hasMany свзять и всё.
Anonymous
Оно тебе само соберет запрос
Obazure
а при soft deletes, отмеченные deleted_at, отдельно нужно потом сортировать в запросе ->select()... или ->count()...
Anonymous
оно автотоматом добавит where deleted_at = null
Anonymous
Если SoftDeletsTrait заюзають в модели
Obazure
Если SoftDeletsTrait заюзають в модели
А когда билдером делаешь запрос он сможет Soft Delets автоматом включить?
Anonymous
билдером самому надо
Obazure
аа, ок
Виталий
А когда билдером делаешь запрос он сможет Soft Delets автоматом включить?
withTrashed() метод добавляешь, тогда в коллекцию удаленные модели включатся
Obazure
ок
Obazure
спс
KarmaBot
@ в этом чате принято отвечать (reply) на сообщение пользователя, чтобы его поблагодарить.
Виталий
onlyTrashed() если хочешь получить только удаленные модели
Obazure
читаю документацию по ларе раздел про отношения
Obazure
уже раз двадцаты говорю "Ух,.. тыыы"
Obazure
супруга ругается, "Ты че сново камасутру смотришь?"
KarmaBot
Спасибо (+1) для @vsbeats принято! Текущая карма +2
KarmaBot
Спасибо (+1) для @Denormalization принято! Текущая карма +16
Anonymous
Ток withTrashed это метод трейта