A
Problema retorno Json quando existe uma associação de 1..N
Pessoal bom dia
Preciso de uma ajuda...
Estou com uma situação que é a seguinte: em empresas eu tenho 1 ou N contatos.
Na model de empresa eu realizei a ligação como abaixo:
Acontece que quando realizo o loadAll para trazer essa informação de contatos entro do json de empresas retorna essa mensagem apresentada em print. Quando alguma empresa não tem contato não me retorna mais nada, ae não traz nem as que tem. No caso acredito que o json deveria trazer normal e somente não mostrar contatos na estrutura quando não tem. Como resolvo? obrigado
Preciso de uma ajuda...
Estou com uma situação que é a seguinte: em empresas eu tenho 1 ou N contatos.
Na model de empresa eu realizei a ligação como abaixo:
- <?php
- public function get_contatos(){
- if (empty($this->contatos)){
- $this->contatos = new Contato($this->codigo);
- }
- return $this->contatos;
- }
- ?>
Acontece que quando realizo o loadAll para trazer essa informação de contatos entro do json de empresas retorna essa mensagem apresentada em print. Quando alguma empresa não tem contato não me retorna mais nada, ae não traz nem as que tem. No caso acredito que o json deveria trazer normal e somente não mostrar contatos na estrutura quando não tem. Como resolvo? obrigado
Se você pode ter "n" contatos para uma empresa, deve buscar os contatos via repositório, pois o vínculo(chave estrangeira) de ligação deve estar em contato(empresa_id, por exemplo):
Nataniel obrigado por responder mas, agora enfrento outro problema. Fica duplicando os registros de contatos dentro do json de empresas.
Segue códigos e retorno do json.
Empresa.php (parte do get_contatos)
EmpresasRestService.php (parte do load)
Onde começo a percorrer as empreas está no foreach e la dentro coloque pra pegar os objetos de contatos e colocar dentro de um array para compar o json de empresas.
Json (só um pedaço para vc ver a duplicidade fui até o registro 3)
O Guilherme de oliveira pertence somente a Empresa 1 mas ele aparece nos outros tbm.
Você precisa reiniciar a variável $contatos para cada empresa, senão vai ficar acumulando mesmo
Consegui Nataniel.
A solução foi usar um array_splice;
Obrigado.