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

Como posso inserir com mais dados?

Estou tentando criar agora um sistema diferente do que está no curso. Até essa aula fiz tudo certo e não deu erro nenhum, porém ao invés da classe telefone, estou usando uma classe chamada Servico que tem outros campos para serem inseridos no banco de dados. Tentei seguindo a forma que foi ensina, mas imaginei que daria erro. O código que tentei fazer foi esse:

<?php

use DaLuz\Senhas\Entity\Servico;
use DaLuz\Senhas\Entity\Usuario;
use DaLuz\Senhas\Helper\EntityManagerFactory;

require_once __DIR__ . '/../vendor/autoload.php';

$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();

$usuario = new Usuario();
$usuario->setNome($argv[1]);

for ($i = 2; $i < $argc; $i++){

    $servico = $argv[$i];
   $servico = new Servico();
   $servico->setNome($servico);
    $servico->setUrl($servico);
    $servico->setSenha($servico);
    $entityManager->persist($servico);
    $usuario->addServico($servico);

}

$entityManager->persist($usuario);
$entityManager->flush();

mas não consegui inserir os dados no banco. Como posso fazer isso?

3 respostas
// ...
$servico = new Servico();
$servico->setNome($servico);
// ...

Parece que você está com erro na lógica do seu programa. O problema não é de Doctrine.

Todos os serviços criados além de iguais, estão errados. Todos os métodos estão sendo chamados com o mesmo parâmetro, que na prática, é o $this.

Mas essa parte do código que eu postei teria que funcionar se não tivesse outro erro?

solução!

Em relação à lógica: não. Sua lógica depende do número de parâmetros e seria bem complexo fazer dessa forma.

Em relação ao Doctrine, se o mapeamento estiver correto, sim. Funcionaria.