You have <span class="meta-nav screen-reader-text">Page </span>{{ $element }} change the {{ $element }} to {{ $page }}
Aug 1, 2022
4
Level 12
Editing default laravel's bootstrap pagination results in an htmlspecialchars() error
Hello! I'm trying to edit the out of box laravel's bootstrap pagination design. Here is the default
<ul class="pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
<span class="page-link" aria-hidden="true">‹</span>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">‹</a>
</li>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
@else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li class="page-item">
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">›</a>
</li>
@else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span class="page-link" aria-hidden="true">›</span>
</li>
@endif
</ul>
and I'm trying to convert it into this

I tried the following
<div class="nav-links">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<a class="prev page-numbers disabled" href="#" aria-disabled="true">Previous</a>
@else
<a class="prev page-numbers" href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">‹</a>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<span class="page-numbers current" aria-disabled="true">
<span class="meta-nav screen-reader-text">Page </span>{{ $element }}
</span>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<span class="page-numbers current" aria-disabled="true">
<span class="meta-nav screen-reader-text">Page </span>{{ $element }}
</span>
@else
<a class="page-numbers" href="{{ $url }}"><span
class="meta-nav screen-reader-text">Page </span>{{ $page }}</a>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<a class="next page-numbers" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">@lang('pagination.next')</a>
@else
<a class="next page-numbers disabled" href="#" aria-disabled="true">@lang('pagination.next')</a>
@endif
</div>
but it results in an error
htmlspecialchars(): Argument #1 ($string) must be of type string, array given
without specifying a specific line that triggers the error. Where could the problem be? Here is the original template pagination code that I'm trying to convert into
<nav class="navigation pagination">
<h2 class="screen-reader-text">Posts navigation</h2>
<div class="nav-links">
<a class="prev page-numbers" href="#">Previous</a>
<span class="page-numbers current">
<span class="meta-nav screen-reader-text">Page </span>1
</span>
<a class="page-numbers" href="#"><span class="meta-nav screen-reader-text">Page </span>2</a>
<a class="page-numbers" href="#"><span class="meta-nav screen-reader-text">Page </span>3</a>
<a class="page-numbers" href="#"><span class="meta-nav screen-reader-text">Page </span>...</a>
<a class="page-numbers" href="#"><span class="meta-nav screen-reader-text">Page </span>6</a>
<a class="next page-numbers" href="#">Next</a>
</div>
</nav>
Level 29
Please or to participate in this conversation.