Компактный массив Cakephp

В моей функции index() этот код не возвращает все

$this->paginate = [
        'contain' => ['TipoPlatos','TipoArticulos'],
    ];
    $platos = $this->paginate($this->Platos);

$this->set(compact('platos'));

Это вернет только 20 плато, а у меня 23.

Если вы используете это

$platos2 = $this->Platos->find('all')->select(['id'])->toArray();

у меня есть все, но я не знаю, почему первый не возвращает все.

Можно ли получить сбой из paginate?

1 ответ

$this->paginate = [
        'contain' => ['TipoPlatos','TipoArticulos'],
    ];
    $platos = $this->paginate($this->Platos);

$this->set(compact('platos'));

^ это использует разбиение на страницы https://book.cakephp.org/3/en/controllers/components/pagination.html,
что поможет вам делать такие URL-адреса, как:

your-site.test/platos // <= page 1
your-site.test/platos?page=2
your-site.test/platos?page=3

Если вы хотите, чтобы индекс возвращал все, измените свой код на:

$platos = $this->Platos->find()
    ->contain(['TipoPlatos','TipoArticulos'])
    ->all();

$this->set(compact('platos'));

https://book.cakephp.org/3/en/orm/retrieving-data-and-resultsets.html

Другие вопросы по тегам