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

#10 Leanne Graham

Optio molestias id quia eum

Quo et expedita modi cum officia vel magni doloribus qui repudiandae vero nisi sit quos veniam quod sed accusamus veritatis error

Sincere@april.biz Romaguera-Crona
#11 Ervin Howell

Et ea vero quia laudantium autem

Delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus accusamus in eum beatae sit vel qui neque voluptates ut commodi qui incidunt ut animi commodi

Shanna@melissa.tv Deckow-Crist
#12 Ervin Howell

In quibusdam tempore odit est dolorem

Itaque id aut magnam praesentium quia et ea odit et ea voluptas et sapiente quia nihil amet occaecati quia id voluptatem incidunt ea est distinctio odio

Shanna@melissa.tv Deckow-Crist
#13 Ervin Howell

Dolorum ut in voluptas mollitia et saepe quo animi

Aut dicta possimus sint mollitia voluptas commodi quo doloremque iste corrupti reiciendis voluptatem eius rerum sit cumque quod eligendi laborum minima perferendis recusandae assumenda consectetur porro architecto ipsum ipsam

Shanna@melissa.tv Deckow-Crist
#14 Ervin Howell

Voluptatem eligendi optio

Fuga et accusamus dolorum perferendis illo voluptas non doloremque neque facere ad qui dolorum molestiae beatae sed aut voluptas totam sit illum

Shanna@melissa.tv Deckow-Crist
#15 Ervin Howell

Eveniet quod temporibus

Reprehenderit quos placeat velit minima officia dolores impedit repudiandae molestiae nam voluptas recusandae quis delectus officiis harum fugiat vitae

Shanna@melissa.tv Deckow-Crist
#16 Ervin Howell

Sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio

Suscipit nam nisi quo aperiam aut asperiores eos fugit maiores voluptatibus quia voluptatem quis ullam qui in alias quia est consequatur magni mollitia accusamus ea nisi voluptate dicta

Shanna@melissa.tv Deckow-Crist
#17 Ervin Howell

Fugit voluptas sed molestias voluptatem provident

Eos voluptas et aut odit natus earum aspernatur fuga molestiae ullam deserunt ratione qui eos qui nihil ratione nemo velit ut aut id quo

Shanna@melissa.tv Deckow-Crist
#18 Ervin Howell

Voluptate et itaque vero tempora molestiae

Eveniet quo quis laborum totam consequatur non dolor ut et est repudiandae est voluptatem vel debitis et magnam

Shanna@melissa.tv Deckow-Crist

Build your own data page

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

Back to demos