Мой проект Laravel находится в подпапке из моей корневой папки, и в некоторых представлениях я использую метод simplePaginate (). После небольшого поиска я заметил AbstractPaginator
используется и предоставляет метод url()
который где-то вниз по дороге вызывается BootstrapThreeNextPreviousButtonRendererTrait
который вызывается из SimpleBootstrapThreePresenter
,
Я искал в моем config/app.php
а также helpers.php
файл, чтобы найти что-то, указывающее на решение. Но пока ничего не нашел.
Как я могу настроить Laravel (5.1) для использования моей структуры подпапок с классом пагинации?
Я решил это, изменив BootstrapThreeNextPreviousButtonRendererTrait
, Я знаю, что мог бы также изменить AbstractPaginator
но так как я не наблюдаю за последствиями этого прямо сейчас, я решил приспособить черту к моим потребностям, вот так:
<?php
namespace Illuminate\Pagination;
use Illuminate\Support\Facades\Request;
trait BootstrapThreeNextPreviousButtonRendererTrait
{
/**
* Get the previous page pagination element.
*
* @param string $text
* @return string
*/
public function getPreviousButton($text = '«')
{
// If the current page is less than or equal to one, it means we can't go any
// further back in the pages, so we will render a disabled previous button
// when that is the case. Otherwise, we will give it an active "status".
if ($this->paginator->currentPage() <= 1) {
return $this->getDisabledTextWrapper($text);
}
$url = url() . '/' . Request::path() . '?page=' . ($this->paginator->currentPage() - 1);
//Laravel shipped code disabled because of an installation in a sub-sub folder.
//$url = $this->paginator->url(
// $this->paginator->currentPage() - 1
//);
return $this->getPageLinkWrapper($url, $text, 'prev');
}
/**
* Get the next page pagination element.
*
* @param string $text
* @return string
*/
public function getNextButton($text = '»')
{
// If the current page is greater than or equal to the last page, it means we
// can't go any further into the pages, as we're already on this last page
// that is available, so we will make it the "next" link style disabled.
if (! $this->paginator->hasMorePages()) {
return $this->getDisabledTextWrapper($text);
}
$url = url() . '/' . Request::path() . '?page=' . ($this->paginator->currentPage() + 1);
//Laravel shipped code disabled because of an installation in a sub-sub folder.
//$url = $this->paginator->url($this->paginator->currentPage() + 1);
return $this->getPageLinkWrapper($url, $text, 'next');
}
}
Других решений пока нет …