/** * Вывод терминов по буквам * * @return Response */ public function letter($letter, Dictionary $dictionary, DescriptionCategory $descriptionCategory) { // если не одна буква юникода, то отвечаем 404 ошибкой if (!preg_match('/^\\w{1}$/u', $letter)) { abort(404); } $paginateTerms = $dictionary->getPaginateTermOnLetter(5, $letter); $terms = $dictionary->transform($paginateTerms); // признак, чтоб скрыть таблицу с буквами $isLetter = true; $descriptionCategory = $descriptionCategory->getDescriptionCategory('dictionary'); return view('dictionary.indexDictionary', ['terms' => $terms, 'pagination' => $paginateTerms, 'isLetter' => $isLetter, 'letter' => $letter, 'descriptionCategory' => $descriptionCategory]); }
/** * Разбивает термины по блокам для пагинации, * также выбирает термины, начинающиеся с * буквы $letter * * @param int $countPage * @param string $letter * @return mixed */ public function getPaginateTermOnLetter($countPage = 5, $letter = 'А') { return Dictionary::where('title', 'like', $letter . '%')->paginate($countPage); }