 Евгений
    Евгений 
    
    
        
        
        
        Не помню как называется
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Ну бери $serial->episodes()->with('watched')->get();
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        В итоге оно выборку сделает сразу
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        И не будешь потом каждый раз дергать бд
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Ок, попробую
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Ну да
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Или еще раньше можно
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Логично же
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Когда seail выбираешь
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Serial::with('episodes.watch')->where('id', 1)->first();
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Можно
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Кул
    
 
     Евгений
    Евгений 
    
    
        
        
        
        А смотри
    
 
     Евгений
    Евгений 
    
    
        
        
        
        В вьюхе как
    
 
     Евгений
    Евгений 
    
    
        
        
        
        В блейде
    
 
     Евгений
    Евгений 
    
    
        
        
        
        А бля
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        А можно вообще в модели эпизодов прописать $with = ['watched'] и он сам будет его дергать каждый раз )
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Все понятно
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Каждый раз не надо
    
 
     Евгений
    Евгений 
    
    
        
        
        
        Хотя...
    
 
     Евгений
    Евгений 
    
    
        
        
        
        А то запросов очень много как-то у меня вышло😄
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Ток чет я не пойму как ты определяешь что юзер посмотрел
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Покажи этот момент
    
 
     Евгений
    Евгений 
    
    
        
        
        
        У компа буду гляну
    
 
     Евгений
    Евгений 
    
    
        
        
        
        public function isSeen($user_id)
            {
                $check = false;
                $user = User::findOrFail($user_id);
                if (Auth::check() && $user->episodes()->where('episode_id', $this->id)->count() > 0) {
                    $check = true;
                }
                return $check;
            }
    
 
     Евгений
    Евгений 
    
    
        
        
        
        вот, поугарай
    
 
     Евгений
    Евгений 
    
    
        
        
        
        это у эпизода метод
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        эм
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        эт пиздец
    
 
     Евгений
    Евгений 
    
    
        
        
        
        =)
    
 
     Евгений
    Евгений 
    
    
        
        
        
        я не сомневался
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Auth::check() это зачем?
    
 
     Евгений
    Евгений 
    
    
        
        
        
        на всякий случай
    
 
     Евгений
    Евгений 
    
    
        
        
        
        или это доп запрос?
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        На какой случай?)
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Ты же юзера уже нашел
    
 
     Евгений
    Евгений 
    
    
        
        
        
        убрал
    
 
     Евгений
    Евгений 
    
    
        
        
        
        а остальное?
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        остальное тоже пиздец
    
 
     Евгений
    Евгений 
    
    
        
        
        
        ладно, щас мелкого укладывать буду, потом напишу тебе
    
 
     Евгений
    Евгений 
    
    
        
        
        
        или завтра
    
 
     Александр
    Александр 
    
    
        
        
        
        D, тебе в этом чате почасовку платят за онлайн и ответы на вопросы?)
    
 
     Евгений
    Евгений 
    
    
        
        
        
        D, сvотри, наверно правильно когда я делаю запрос и получаю сериал с эпизодами, сразу в этом же запросе джоином или как там еще получить у каждого эпизода статус просмотренности данным юзером, то есть передать айдишник юзера туда
    
 
     Евгений
    Евгений 
    
    
        
        
        
        @Denormalization так?
    
 
     Евгений
    Евгений 
    
    
        
        
        
        чтобы в зависимости от статуса уже во вьюхе показывать нудную хрень
    
 
     Anonymous
    Anonymous 
    
    
 
     Anonymous
    Anonymous 
    
    
 
     Евгений
    Евгений 
    
    
        
        
        
        блин, эти джоины... никогда не умел их готовить
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Смотри, у тебя есть таблица с user_id, episode_id так?
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Укажи просто hasMany связь в модели эпизода
    
 
     Евгений
    Евгений 
    
    
        
        
        
        public function users()
            {
                return $this->belongsToMany('App\Models\User', 'episode_user', 'episode_id', 'user_id');
            }
    
 
     Евгений
    Евгений 
    
    
        
        
        
        это у эпизода юзеры которые его посмотрели
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        хм
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        можно и так
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        только теперь все равно надо фильтровать
    
 
     Евгений
    Евгений 
    
    
        
        
        
        $serial = Serial::where('slug', $slug)->with(['episodes'])->firstOrFail();
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        и episodes.users
    
 
     Евгений
    Евгений 
    
    
        
        
        
        вот так я получаю сериал с эпизодами, и надо туда же к каждому эпизоду статус присобачить
    
 
     Евгений
    Евгений 
    
    
        
        
        
        а как это поможет с выводом?
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Ну тебе же надо выяснить смотрел ли юзер
    
 
     Евгений
    Евгений 
    
    
        
        
        
        да
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Нужно будет дергать таблицу все равно
    
 
     Евгений
    Евгений 
    
    
        
        
        
        а если так
    
 
     Евгений
    Евгений 
    
    
        
        
        
        берем отдельной переменной сериал, отдельной его серии, два запроса. И у серий мы делаем джоин просмотренных текущим юзером
    
 
     Евгений
    Евгений 
    
    
        
        
        
        я просто не знаю как это всё пихнуть в один запрос у сериала
    
 
     Евгений
    Евгений 
    
    
        
        
        
        а у эпизодов проще кажется
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        $serial = Serial::where('slug', $slug)->with(['episodes', 'episodes.users'])->firstOrFail();
        
        public function isWatchedBy($user_id)
        {
          return $this->users->where('user_id', $user_id)->count() > 0;
        }
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Добавь метод в модель эпизодов
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        или там через find() можно
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        не суть
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Но мне не нравится оверхед на выборку всех юзеров
    
 
     Евгений
    Евгений 
    
    
        
        
        
        о, ща, пришла идея
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Вообще можно сделать без заеба
    
 
     Евгений
    Евгений 
    
    
        
        
        
        $episode->users->contains('id', Auth::id())
    
 
     Евгений
    Евгений 
    
    
        
        
        
        вот проверяем у серии смотрел ли её юзер
    
 
     Евгений
    Евгений 
    
    
        
        
        
        во вьюхе
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Не, это хреновая идея
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        Там все равно все юзеры выбираются
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        А прикинь там будет 1000 юзеров
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        И они каждый раз будут дергаться