knp_paginator оно не функционирует в услуге Symfony

У меня есть определенный функция, в которой я использую 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 они приходят не недействительные, а именно с данными.

2
задан 28.03.2019, 07:50
1 ответ

Я нашел 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;
}}
1
ответ дан 19.11.2019, 21:21