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

#55 Mrs. Dennis Schulist

Sit vel voluptatem et non libero

Debitis excepturi ea perferendis harum libero optio eos accusamus cum fuga ut sapiente repudiandae et ut incidunt omnis molestiae nihil ut eum odit

Karley_Dach@jasper.info Considine-Lockman
#56 Mrs. Dennis Schulist

Qui et at rerum necessitatibus

Aut est omnis dolores neque rerum quod ea rerum velit pariatur beatae excepturi et provident voluptas corrupti corporis harum reprehenderit dolores eligendi

Karley_Dach@jasper.info Considine-Lockman
#57 Mrs. Dennis Schulist

Sed ab est est

At pariatur consequuntur earum quidem quo est laudantium soluta voluptatem qui ullam et est et cum voluptas voluptatum repellat est

Karley_Dach@jasper.info Considine-Lockman
#58 Mrs. Dennis Schulist

Voluptatum itaque dolores nisi et quasi

Veniam voluptatum quae adipisci id et id quia eos ad et dolorem aliquam quo nisi sunt eos impedit error ad similique veniam

Karley_Dach@jasper.info Considine-Lockman
#59 Mrs. Dennis Schulist

Qui commodi dolor at maiores et quis id accusantium

Perspiciatis et quam ea autem temporibus non voluptatibus qui beatae a earum officia nesciunt dolores suscipit voluptas et animi doloribus cum rerum quas et magni et hic ut ut commodi expedita sunt

Karley_Dach@jasper.info Considine-Lockman
#60 Mrs. Dennis Schulist

Consequatur placeat omnis quisquam quia reprehenderit fugit veritatis facere

Asperiores sunt ab assumenda cumque modi velit qui esse omnis voluptate et fuga perferendis voluptas illo ratione amet aut et omnis

Karley_Dach@jasper.info Considine-Lockman
#61 Kurtis Weissnat

Voluptatem doloribus consectetur est ut ducimus

Ab nemo optio odio delectus tenetur corporis similique nobis repellendus rerum omnis facilis vero blanditiis debitis in nesciunt doloribus dicta dolores magnam minus velit

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

Beatae enim quia vel

Enim aspernatur illo distinctio quae praesentium beatae alias amet delectus qui voluptate distinctio odit sint accusantium autem omnis quo molestiae omnis ea eveniet optio

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

Voluptas blanditiis repellendus animi ducimus error sapiente et suscipit

Enim adipisci aspernatur nemo numquam omnis facere dolorem dolor ex quis temporibus incidunt ab delectus culpa quo reprehenderit blanditiis asperiores accusantium ut quam in voluptatibus voluptas ipsam dicta

Telly.Hoeger@billy.biz Johns 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