Boa tarde, estou tentando por em prática o que vi no curso, mas estou enfrentando um problema. Eu tenho os seguinte arquivos: Categoria.php
<?php
namespace App\Models;
use App\Helpers\RenderizadorDeHTML;
class Categoria{
use RenderizadorDeHTML;
private $nome;
private $id;
public function __construct($nome = null, $id = null){
$this->nome = $nome;
$this->id = $id;
}
public function getId(){
$this->id = $id;
}
RenderizadorDeHTML.php
<?php
namespace App\Helpers;
trait RenderizadorDeHTML{
public function Htmlrender($template, $dados): string
{
extract($dados);
ob_start();
require __DIR__ . '/../Views/' . $template;
$html = ob_get_clean(;
ob_clean();
return $html;
}
}
e o BuscarCategorias.php
<?php
namespace App\Controlers\Categoria;
require '../../../autoload.php';
use App\Models\{Categoria,Connection};
class BuscarCategorias extends Categoria{
public function getCategorias(){
$query = "SELECT id, nome FROM tb_categorias ORDER BY nome";
$connect = Connection::takeConnection();
$list = $connect->prepare($query);
$list->execute();
$lista = $list->fetchall();
echo $this->HtmlRender('Category/lista-categorias.php', ['linhas' => $lista]);
}
}
lista-categorias.php
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Lista de categorias</title>
<link rel="stylesheet" href="style/reset.css">
<link rel="stylesheet" href="style/indexstyle.css">
</head>
<body>
<?php foreach($linhas as $linha): ?>
<?php echo $linha['id]; ?>
<?php endforeach; ?>
</div>
</body>
</html>
fiz um teste e instanciei a própria classe ao final do BuscarCategorias.php e funcionou porém pelo que foi passado no curso isso não seria necessário:
<?php
namespace App\Controlers\Categoria;
require '../../../autoload.php';
use App\Models\{Categoria,Connection};
class GetCategorias extends Categoria{
public function getCategorias(){
$query = "SELECT id, nome FROM tb_categorias ORDER BY nome";
$connect = Connection::takeConnection();
$list = $connect->prepare($query);
$list->execute();
$lista = $list->fetchall();
echo $this->HtmlRender('Categoria/list-categorias.php',['linhas' => $lista]);
}
}
$lista = new GetCategorias();
$linhas = $lista->getCategories();
pelo que entendi, quando eu tentasse acessar o BuscarCategorias ele deveria listar os ids das categorias porém a página não é carregado e fica tudo em branco. Onde Estou errando?