У меня есть определенный функция, в которой я использую paginador, использованный в моих драйверах, функционируй правильно. Однако, когда я определяю услугу, чтобы не копировать и прикреплять code, у меня есть следующее:
app.paginacion:
class: Caja\SiafcaInternetBundle\Services\Paginacion
public: true
arguments: ["@knp_paginator"]
В моем config.yml
knp_paginator:
page_range: "%knp_paginator_page_range%"
default_options:
page_name: "%knp_paginator_page_name%"
sort_field_name: "%knp_paginator_sort_field_name%"
sort_direction_name: "%knp_paginator_sort_direction_name%"
distinct: "%knp_paginator_distinct%"
template:
pagination: "%knp_paginator_pagination%"
sortable: "%knp_paginator_sortable%"
И в моем controllador я определяю следующий класс
class Paginacion{
private $paginator;
public function __contruct($paginator){
$this->$paginator = $paginator;
}
public function obtenerPaginacion($request,$aportantesWS,$totalAportantes)
{
if (!$aportantesWS)
{
$pagination = null;
}
else
{
// $paginator = $this->get('app.knp_paginator');
$pagination =
$this->paginator->paginate(
$aportantesWS,
$request->query->getInt('page', 1),
20
);
$pagination->setTotalItemCount($totalAportantes);
}
return $pagination;
}}
Например называя это:
$this->get('app.paginacion')->obtenerPaginacion($request,$aportantesWS,$totalAportantes)
Когда я пробую использовать это, мне производит следующую ошибку Ошибка: Call to в member function пролистай тебя () on null Проверяя с dump () данные request, aportantesWS и totalaportantes они приходят не недействительные, а именно с данными.
Я нашел soluciòn. Продолжая следующего posteo в stackoverflow
Изменил мой definiciòn в services.yml
paginacion:
class: Caja\SiafcaInternetBundle\Services\Paginacion
public: true
arguments: ["@knp_paginator"]
calls:
- [setPaginator, ["@knp_paginator"]]
Присоедините calls - [setPaginator, [" @knp_paginator"]]
Изменил мой драйвер присоединяя метод setPaginator
public function setPaginator($paginator)
{
$this->paginator = $paginator;
}
Оставаясь следующей формы:
class Paginacion{
private $paginator;
public function __contruct($paginator){
$this->$paginator = $paginator;
}
public function setPaginator($paginator)
{
$this->paginator = $paginator;
}
public function obtenerPaginacion($request,$aportantesWS,$totalAportantes)
{
if (!$aportantesWS)
{
$pagination = null;
}
else
{
$pagination =
$this->paginator->paginate(
$aportantesWS,
$request->query->getInt('page', 1),
20
);
$pagination->setTotalItemCount($totalAportantes);
}
return $pagination;
}}