Closed tiagocaus closed 4 years ago
Preciso fazer a abstração de dados da tabela projetos. Como a tabela projetos tem relação com outras, junto preciso abstrair dados das tabelas Cadastro e Paises.
Tentei seguir as instruções desse video, mas fiquei confuso: https://www.youtube.com/watch?v=eD067TOeE-k
Em Models tenho:
Cadastro.php
<?php namespace Source\Models; use CoffeeCode\DataLayer\DataLayer; class Cadastro extends DataLayer { public function __construct() { parent::__construct("cadastro", []); } }
Paises.php
<?php namespace Source\Models; use CoffeeCode\DataLayer\DataLayer; class Pais extends DataLayer { public function __construct() { parent::__construct("paises", []); } }
Projetos.php
<?php namespace Source\Models; use CoffeeCode\DataLayer\DataLayer; class Projeto extends DataLayer { public function __construct() { parent::__construct("projetos", []); } }
Na tela de onde exibo os projetos:
<?php require __DIR__ . "/vendor/autoload.php"; $model = new \Source\Models\Projeto(); $projetos = $model->find("url = :url", "url=".$_GET['url']."")->fetch(); foreach ($projetos as $projeto){ echo $projeto->titulo } ?>
Como fazer, para que na mesma abstração
$projeto->
eu consiga trazer dados das outras tabelas?
Faça desta forma:
Na sua model Cadastro, adicione um método que retornará os projetos
<?php
namespace Source\Models;
use CoffeeCode\DataLayer\DataLayer;
class Cadastro extends DataLayer
{
public function __construct()
{
parent::__construct("cadastro", []);
}
/**
* @return Projeto|null
*/
public function projetos(): ?Projeto
{
return ($this->id) ? (new Projeto())
->find("cadastro_id = :cadastro_id", "cadastro_id={$this->id}") : null;
}
}
Ao utilizar ficaria desta forma:
<?php
require __DIR__ . "/vendor/autoload.php";
$model = new \Source\Models\Cadastro();
$cadastro = $model->findById(1);
var_dump($cadastro->projetos()->fetch(true));
?>
O usuário tem um endereço? Então na classe usuário você precisa ter um método endereço (address) para buscar os endereços desse usuário.
Preciso fazer a abstração de dados da tabela projetos. Como a tabela projetos tem relação com outras, junto preciso abstrair dados das tabelas Cadastro e Paises.
Tentei seguir as instruções desse video, mas fiquei confuso: https://www.youtube.com/watch?v=eD067TOeE-k
Em Models tenho:
Cadastro.php
Paises.php
Projetos.php
Na tela de onde exibo os projetos:
Como fazer, para que na mesma abstração
$projeto->
eu consiga trazer dados das outras tabelas?