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

#91 Clementina DuBuque

Aut amet sed

Libero voluptate eveniet aperiam sed sunt placeat suscipit molestias similique fugit nam natus expedita consequatur consequatur dolores quia eos et placeat

Rey.Padberg@karina.biz Hoeger LLC
#92 Clementina DuBuque

Ratione ex tenetur perferendis

Aut et excepturi dicta laudantium sint rerum nihil laudantium et at a neque minima officia et similique libero et commodi voluptate qui

Rey.Padberg@karina.biz Hoeger LLC
#93 Clementina DuBuque

Beatae soluta recusandae

Dolorem quibusdam ducimus consequuntur dicta aut quo laboriosam voluptatem quis enim recusandae ut sed sunt nostrum est odit totam sit error sed sunt eveniet provident qui nulla

Rey.Padberg@karina.biz Hoeger LLC
#94 Clementina DuBuque

Qui qui voluptates illo iste minima

Aspernatur expedita soluta quo ab ut similique expedita dolores amet sed temporibus distinctio magnam saepe deleniti omnis facilis nam ipsum natus sint similique omnis

Rey.Padberg@karina.biz Hoeger LLC
#95 Clementina DuBuque

Id minus libero illum nam ad officiis

Earum voluptatem facere provident blanditiis velit laboriosam pariatur accusamus odio saepe cumque dolor qui a dicta ab doloribus consequatur omnis corporis cupiditate eaque assumenda ad nesciunt

Rey.Padberg@karina.biz Hoeger LLC
#96 Clementina DuBuque

Quaerat velit veniam amet cupiditate aut numquam ut sequi

In non odio excepturi sint eum labore voluptates vitae quia qui et inventore itaque rerum veniam non exercitationem delectus aut

Rey.Padberg@karina.biz Hoeger LLC
#97 Clementina DuBuque

Quas fugiat ut perspiciatis vero provident

Eum non blanditiis soluta porro quibusdam voluptas vel voluptatem qui placeat dolores qui velit aut vel inventore aut cumque culpa explicabo aliquid at perspiciatis est et voluptatem dignissimos dolor itaque sit nam

Rey.Padberg@karina.biz Hoeger LLC
#98 Clementina DuBuque

Laboriosam dolor voluptates

Doloremque ex facilis sit sint culpa soluta assumenda eligendi non ut eius sequi ducimus vel quasi veritatis est dolores

Rey.Padberg@karina.biz Hoeger LLC
#99 Clementina DuBuque

Temporibus sit alias delectus eligendi possimus magni

Quo deleniti praesentium dicta non quod aut est molestias molestias et officia quis nihil itaque dolorem quia

Rey.Padberg@karina.biz Hoeger LLC

Build your own data page

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

Back to demos