Controller fetches, template renders

PagesController::pageDemosPosts() calls the JSONPlaceholder API using Cake\Http\Client, maps users by ID, and passes both arrays to this template via $this->set().

src/Controller/PagesController.php
public function pageDemosPosts(): void
{
    $page    = max(1, (int)$this->request->getQuery('page', 1));
    $perPage = 9;
    $http    = new Client(['timeout' => 5]);

    $postsResp = $http->get('https://jsonplaceholder.typicode.com/posts', [
        '_limit' => $perPage,
        '_start' => ($page - 1) * $perPage,
    ]);
    $usersResp = $http->get('https://jsonplaceholder.typicode.com/users');

    foreach ((array)$usersResp->getJson() as $user) {
        $userMap[(int)$user['id']] = $user;
    }

    $total      = (int)$postsResp->getHeaderLine('X-Total-Count');
    $totalPages = (int)ceil($total / $perPage);

    $this->set(compact('posts', 'userMap', 'error', 'page', 'totalPages'));
}

Posts from JSONPlaceholder

#64 Kurtis Weissnat

Et fugit quas eum in in aperiam quod

Id velit blanditiis eum ea voluptatem molestiae sint occaecati est eos perspiciatis incidunt a error provident eaque aut aut qui

Telly.Hoeger@billy.biz Johns Group
#65 Kurtis Weissnat

Consequatur id enim sunt et et

Voluptatibus ex esse sint explicabo est aliquid cumque adipisci fuga repellat labore molestiae corrupti ex saepe at asperiores et perferendis natus id esse incidunt pariatur

Telly.Hoeger@billy.biz Johns Group
#66 Kurtis Weissnat

Repudiandae ea animi iusto

Officia veritatis tenetur vero qui itaque sint non ratione sed et ut asperiores iusto eos molestiae nostrum veritatis quibusdam et nemo iusto saepe

Telly.Hoeger@billy.biz Johns Group
#67 Kurtis Weissnat

Aliquid eos sed fuga est maxime repellendus

Reprehenderit id nostrum voluptas doloremque pariatur sint et accusantium quia quod aspernatur et fugiat amet non sapiente et consequatur necessitatibus molestiae

Telly.Hoeger@billy.biz Johns Group
#68 Kurtis Weissnat

Odio quis facere architecto reiciendis optio

Magnam molestiae perferendis quisquam qui cum reiciendis quaerat animi amet hic inventore ea quia deleniti quidem saepe porro velit

Telly.Hoeger@billy.biz Johns Group
#69 Kurtis Weissnat

Fugiat quod pariatur odit minima

Officiis error culpa consequatur modi asperiores et dolorum assumenda voluptas et vel qui aut vel rerum voluptatum quisquam perspiciatis quia rerum consequatur totam quas sequi commodi repudiandae asperiores et saepe a

Telly.Hoeger@billy.biz Johns Group
#70 Kurtis Weissnat

Voluptatem laborum magni

Sunt repellendus quae est asperiores aut deleniti esse accusamus repellendus quia aut quia dolorem unde eum tempora esse dolore

Telly.Hoeger@billy.biz Johns Group
#71 Nicholas Runolfsdottir V

Et iusto veniam et illum aut fuga

Occaecati a doloribus iste saepe consectetur placeat eum voluptate dolorem et qui quo quia voluptas rerum ut id enim velit est perferendis

Sherwood@rosamond.me Abernathy Group
#72 Nicholas Runolfsdottir V

Sint hic doloribus consequatur eos non id

Quam occaecati qui deleniti consectetur consequatur aut facere quas exercitationem aliquam hic voluptas neque id sunt ut aut accusamus sunt consectetur expedita inventore velit

Sherwood@rosamond.me Abernathy Group

Build your own data page

Add a method to PagesController, fetch from any API or database, and pass to your template.

Back to demos