Пример #1
0
 public function getAllByTag($id)
 {
     return Cache::store('prevTag')->rememberForever($id . ':' . $this->page, function () use($id) {
         $tags = new Tags();
         $tag = $tags->getById($id)->first();
         //Да, да для статей алгоритм обсалютно такой-же
         //Но я действую так, если код дублируется больше 2храз (Но только в рамках одного класса/ф-и php файла)то:
         //создаем шаблон для повторяющихся действий, выносим всё в ф-и и т.п.
         //Для хлебных крошек
         $items['tag'] = ['id' => $tag->id, 'name' => $tag->name, 'curl' => $tag->curl];
         //методанные
         $items['title'] = $tag->name;
         $items['keywords'] = 'блог, разработка, тег, ' . $tag->name;
         if ($tag->meta_keywords != '') {
             //Доп ключевые слова
             $items['keywords'] .= ',' . $tag;
         }
         $items['description'] = 'Блог начинающего backend разработчика' . 'Все статьи отобранные по тегу ' . $tag->name . '.' . $tag->meta_descriptiom;
         //Превьюхи
         $articles = $tag->articles()->published()->orderByParam()->with('tags', 'category')->paginate($this->countPage);
         //Превьюхи в нужном формате
         $items['articles'] = $this->createArrPreviews($articles);
         return $this->createLengthAwarePaginator($articles, $items);
     });
 }