РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
891 of 1392 menu

Метод fragment

Метод fragment класса LengthAwarePaginator позволяет добавить якорь (фрагмент) к URL-адресам всех ссылок пагинации. Это полезно, когда нужно, чтобы после перехода на другую страницу страница прокручивалась к определённому элементу. Первым параметром метод принимает строку с названием якоря (например, 'comments' или 'section'). Метод возвращает тот же экземпляр пагинатора с добавленным фрагментом ко всем URL.

Синтаксис

<?php $paginator->fragment($fragment); ?>

Пример

Рассмотрим базовый пример использования метода fragment в контроллере. Предположим, у нас есть комментарии к статье, и мы хотим, чтобы при переходе на следующую страницу пользователь автоматически перемещался к блоку комментариев:

<?php namespace AppHttpControllers; use AppModelsComment; use IlluminateHttpRequest; class CommentController extends Controller { public function index() { $comments = Comment::paginate(10); $comments->fragment('comments'); return view('comments.index', ['comments' => $comments]); } } ?>

Результат: все ссылки пагинации будут выглядеть так:

http://example.com/comments?page=2#comments http://example.com/comments?page=3#comments

Пример

Метод fragment можно вызывать цепочкой после других методов настройки пагинации, например, после withQueryString:

<?php namespace AppHttpControllers; use AppModelsProduct; use IlluminateHttpRequest; class ProductController extends Controller { public function index(Request $request) { $products = Product::where('active', true) ->paginate(15) ->withQueryString() ->fragment('products'); return view('products.index', ['products' => $products]); } } ?>

Результат: ссылки сохраняют текущие параметры запроса и добавляют якорь:

http://example.com/products?page=2&sort=price#products http://example.com/products?page=3&sort=price#products

Пример

В Blade-шаблоне метод fragment автоматически добавляет якорь ко всем ссылкам, генерируемым методом links:

<div id="comments"> <h2>Comments</h2> @foreach ($comments as $comment) <div> <h3>{{ $comment->title }}</h3> <p>{{ $comment->body }}</p> </div> @endforeach <div class="pagination"> {{ $comments->links() }} </div> </div>

В результате все сгенерированные ссылки будут содержать якорь #comments. Это позволяет странице автоматически прокручиваться к блоку комментариев при загрузке новой страницы.

Смотрите также

  • метод links,
    который генерирует HTML-код ссылок пагинации
  • метод withQueryString,
    который сохраняет параметры запроса в ссылках
  • метод appends,
    который добавляет пользовательские параметры в ссылки
  • метод url,
    который генерирует URL для конкретной страницы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить