Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problema fazendo WHERE com Doctrine

Olá pessoal.

Tenho uma tabela Setor , onde id_empresa faz referência a outra tabela.

+----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra          |
+----------------------+--------------+------+-----+---------+----------------+
| id                   | int(11)      | NO   | PRI | NULL    | auto_increment |
| id_responsavel_setor | int(11)      | YES  | MUL | NULL    |                |
| id_empresa           | varchar(255) | YES  | MUL | NULL    |                |
| nm_setor             | varchar(255) | NO   |     | NULL    |                |
+----------------------+--------------+------+-----+---------+----------------+

Estou tentando buscar todos os Setores que pertençam a Empresa de Id = 1. Ele está retornando, mas retorna "Objetos Vazios"

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

Esse é o código que está fazendo a busca.

        $repository = $this->em->getRepository("HospitalApi\Entity\Sector");
        $collection = $repository->findBy(['Enterprise' => 1]);

Quando eu mudo o Id, ele muda quantidade de {}, indicando que ele está filtrando. Alguma ideia do que está rolando?

Setor: https://github.com/hu-ti/intra2/blob/FR01/server/src/HospitalApi/Entity/Sector.php

Empresa: https://github.com/hu-ti/intra2/blob/FR01/server/src/HospitalApi/Entity/Enterprise.php

2 respostas
solução!

Oi Gustavo, tudo bom?

Pelo retorno:

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

Da pra perceber que seus dados foram transformados para JSON. Dei uma olhada no seu projeto e por ser uma API, faz todo sentido.

Entretanto, para que uma classe em PHP seja transformada em JSON, ela necessita implementar a interface JsonSerializable. Quando essa interface não é implementada a transformação para JSON reflete nesse resultado que estamos vendo.

Portanto, acredito que falte apenas você implementar a interface na classe Sector/Enterprise =)

Aqui na documentação você encontra exemplos nesse sentido.

Abraço

Sim. Usei essa interface e funcionou Acontece que o Doctrinebusca uma Collection, que é um objeto que PHP não sabe trabalhar, então resultado é aquele mesmo. Eu implementei essa interfacee funcionou

Muito Obrigado pela força. Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software