robsonvleite / datalayer

The data layer is a persistent abstraction component of your database that PDO (O data layer é um componente para abstração de persistência no seu banco de dados que usa PDO com prepared statements)
https://www.upinside.com.br
MIT License
144 stars 53 forks source link

Ajuda no AssessoriosControllers #66

Closed tiagocaus closed 1 year ago

tiagocaus commented 2 years ago

É a primeira vez que estou utilizando esse datalayer, mas não estou entendendo como utilizar, peço a gentileza se alguém poder apontar onde estou errado. Segue meu código:

## INDEX.PHP

require __DIR__ . "/vendor/autoload.php";

$router = new CoffeeCode\Router\Router(SISTEMA['painel']);
$router->namespace("App\Controllers");

$router->get("/acessorios/json", "AssessoriosControllers:json");

$router->group("ops");
$router->get("/{errcode}", "Web:error");

$router->dispatch();

## MODELS ACESSÓRIOS img: https://i.imgur.com/pZXZ4tk.png

namespace App\Models;

use CoffeeCode\DataLayer\DataLayer;

class Acessorios extends DataLayer
{
    public function __construct()
    {
        parent::__construct("acessorios", ['chave', 'nome'], "id", false);
    }
}

## AssessoriosControllers

namespace App\Controllers;

use App\Models\Acessorios;
use League\Plates\Engine;

class AssessoriosControllers extends Controles
{
    private $view;

    public function __construct()
    {
        $this->view = new Engine(__DIR__ . "/../Views/", "php");
    }

    public function json()
    {
        $model = new Acessorios();
        return $model->find()->fetch(true);
        var_dump($model);
    }

    public function lista(): void
    {
        echo $this->view->render("acessoriosLista", [
            "title" => "Lista de acessórios"
        ]);
    }
}

O que estou fazendo de errado no AssessoriosControllers, que não está sendo gerado o json?

Obrigado.

tiagocaus commented 2 years ago

Esse seria o modo correto de fazer o JSON?

## AssessoriosControllers

public function json()
    {
        header('Content-Type: application/json; charset=utf-8');

        $model = new Acessorios();
        $rs = $model->find("chave = :chave","chave={$_SESSION['chave']}")->fetch(true);

        foreach ($rs as $row){
            $Array[] = Array(
                $row->id,
                $row->nome
            );
        }
        $Array = ['data' => $Array];

        $json_encode = json_encode($Array);
        echo $json_encode;
    }
robsonvleite commented 1 year ago

De uma olhada neste vídeo: https://youtu.be/eD067TOeE-k