Условия paginate cakephp - PullRequest
       48

Условия paginate cakephp

0 голосов
/ 17 марта 2020

Я попробовал

public function index($id = null)
{
    $this->paginate = [
        'contain' => ['Photos'],
    ];
   // $tareas = $this->paginate($this->Tareas);

    $this->loadModel('Categorias');

    if(isset($id)){
        $tareas2 = $this->Tareas->find()->where(['categoria_id'=>$id])->all();
        $tareas = $this->paginate($tareas2);
    }
    else
    {
        $tareas = $this->paginate($this->Tareas);
    }

        $categorias = $this->Categorias->find()->all();



    $this->set(compact('tareas','categorias'));
}

Работает, когда не передают идентификатор, но когда я передал идентификатор, я получаю эту ошибку

Вызов неопределенного метода Cake \ ORM \ ResultSet :: getAlias ​​()

Ответы [ 2 ]

2 голосов
/ 17 марта 2020

Paginator принимает только имена таблиц, экземпляры таблиц (\Cake\Datasource\RepositoryInterface) и экземпляры запросов (\Cake\Datasource\QueryInterface).

Не вызывайте all() для объекта запроса, который будет выполнять запрос и вернуть набор результатов, ie экземпляр \Cake\ORM\ResultSet, вместо этого передать объект запроса.

См. также

1 голос
/ 17 марта 2020

ОК, я решил с этим

public function index($id = null)
{
    if(isset($id)){
        $this->paginate = [
            'contain' => ['Photos'],
            'conditions' => ['categoria_id'=>$id]
        ];
    }
    else{
        $this->paginate = [
            'contain' => ['Photos'],
        ];
    }
    $tareas = $this->paginate($this->Tareas);

    $this->loadModel('Categorias');

    $categorias = $this->Categorias->find()->all();


    $this->set(compact('tareas','categorias'));
}
...