Skip to content
Snippets Groups Projects
ControleurCharacter.php 1.50 KiB
<?php

namespace gp\controleurs;

use gp\modeles\Character;
use gp\vues\VueCharacter;
use Slim\Slim;

class ControleurCharacter
{
    public function getCharacter($id){
        $character = Character::where('id', '=', $id)->first();
        $v = new VueCharacter(json_encode($character));
        $v->render();
    }
    public function getcharacters() {
        $results = null;
        if(isset($_GET['page'])) {
            $page = filter_var($_GET['page'], FILTER_SANITIZE_NUMBER_INT);
            ini_set('memory_limit', '512M');
            $response = Character::paginate(200, ['*'], 'page', $page);
            $json = (json_decode(json_encode($response), true));
            $route = explode('bdappli_laurent_vonderscher_sassu_percin/GamePedia', Slim::getInstance()->urlFor('getCharacters'));
            foreach ($json['data'] as $character) {
                $url = $route[1] . "{$character['id']}";
                $results['characters'][] = ["character" => $character, "links" => ["self" => ["href" => $url]]];
            }
            $prev = $json['prev_page_url'];
            $next = $json['next_page_url'];
            if ($next == '') $next = $json['first_page_url'];
            if ($prev == '') $prev = $json['last_page_url'];
            $links = ["prev" => ["href" => "/api/platforms{$prev}"], "next" => ["href" => "/api/platforms{$next}"]];
            $results['links'] = $links;
        }
        $v = new VueCharacter(json_encode($results));
        $v->render();
    }
}