Relacionamento entre classes com PDO
Bom dia pessoal, estou precisando da ajuda de vocês para resolver um problema de relacionamento de classes que será usado no PDO.
Tenho uma classe Produto que tem um atributo que faz referência a classe Categoria. Até aqui tudo bem.
Porém quando eu faço a consulta no banco para trazer os produtos, ele me retorna o valor da categoria NULL, como posso resolver isso?
Não estar NULL, no banco coloquei categoria de id 1 para todos os produtos.
Utilizo "fetchAll(\PDO::FETCH_CLASS, 'Produto')" para me devolver em forma de objeto e não em array.
OBS: Não levem em consideração os nomes de atributos e métodos, serão refatorados kkkkkk
class Categoria {
private $id;
private $descricao;
function getId() {
return $this->id;
}
function getDescricao() {
return $this->descricao;
}
function setId($id) {
$this->id = $id;
}
function setDescricao($descricao) {
$this->descricao = $descricao;
}
}
class Produto {
private $id;
private $nome;
private $descricao;
private $categoria_id;
public function __construct() {
$this->categoria_id = new Categoria();
}
function getId() {
return $this->id;
}
function getNome() {
return $this->nome;
}
function getDescricao() {
return $this->descricao;
}
function setId($id) {
$this->id = $id;
}
function setNome($nome) {
$this->nome = $nome;
}
function setDescricao($descricao) {
$this->descricao = $descricao;
}
function getCategoria_id() {
return $this->categoria_id;
}
function setCategoria_id($categoria) {
$this->categoria_id = $categoria;
}
}
$stmt = $query->execute();
$stmt->fetchAll(\PDO::FETCH_CLASS, 'Produto');
0 =>
object(Produto)[18]
private 'id' => int 3
private 'nome' => string 'Produto B55333' (length=14)
private 'descricao' => string 'Teste B66666' (length=12)
private 'categoria_id' =>
object(Categoria)[19]
private 'id' => null
private 'descricao' => nullDiscussão (10)
Carregando comentários...