I'm having a little problem with Synfony 3.3, since I'm creating a form with choicetype, and I pass an array to it. When selecting and submitting, I try to create an object with the data of the form, but in my case it is returning null of the first 2 choiceType.
public function insertarPartidos(Request $request)
{
$equipos = $this->getDoctrine()
->getRepository(Equipo::class)
->findAll();
$nombreEquipos = array();
foreach ($equipos as &$equipo){
array_push($nombreEquipos,$equipo->getNomEquipo());
}
$partido = new Partido;
$form = $this->createFormBuilder()
->add('idEquipoVisitante', ChoiceType::class, array(
'choices'=> array(
'Equipos a seleccionar' => array_flip($nombreEquipos)
),
'label' =>'Equipo visitante'
))
->add('idEquipoLocal', ChoiceType::class, array(
'choices'=> array_flip($nombreEquipos),
'label' =>'Equipo local'
))
->add('competicion', ChoiceType::class, array(
'choices' =>array(
'Champions' => 'Champions',
'Liga' => 'Liga',
'Copa del Rey' => 'Copa del Rey'
),
'label' => 'Competicion'
))
->add('temporada', NumberType::class, array(
'label' => 'Temporada'
))
->add('golesVisitantes', NumberType::class, array(
'label' => 'Goles equipo visitante'
))
->add('golesLocal', NumberType::class, array(
'label' => 'Goles equipo local'
))
->add('save',SubmitType::class, array(
'label' => 'Crear partido',
'attr' => array(
'class' => 'btn btn-primary'
)
))
->getForm();
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$em = $this->getDoctrine()->getManager();
$idequipolocal = $form['idEquipoLocal']->getData();
$idequipovisitante = $form['idEquipoVisitante']->getData();
$competicion = $form['competicion']->getData();
$temporada = $form['temporada']->getData();
$goleslocales = $form['golesLocal']->getData();
$golesvisitantes = $form['golesVisitantes']->getData();
//$partido->setEquipoVisitante(1);
//$partido->setEquipoLocal(3);
$partido->setIdEquipoLocal($idequipolocal);
$partido->setIdEquipoVisitante($idequipovisitante);
$partido->setCompeticion($competicion);
$partido->setTemporada($temporada);
$partido->setGolesLocal($goleslocales);
$partido->setGolesVisitantes($golesvisitantes);
$em->persist($partido);
$em->flush();
$this->addFlash('notice','Partido añadido');
return $this->redirectToRoute('app_mostrarbotones_listarbotones');
//return new Response('Saved new product with id '.$partido->getId());
}
return $this->render('@App/Consultas/insertar_partidos.html.twig', array(
'form' =>$form->createView(),
));
}
Does anyone know what this is about? I also leave the code of the entity:
class Partido{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var int
*
* @ORM\Column(name="temporada", type="integer")
*/
private $temporada;
/**
* @var string
*
* @ORM\Column(name="competicion", type="string", length=255)
*/
private $competicion;
/**
* @var int
*
* @ORM\Column(name="goles_local", type="integer")
*/
private $golesLocal;
/**
* @var int
*
* @ORM\Column(name="goles_visitantes", type="integer")
*/
private $golesVisitantes;
/**
* @var int
*
* @ORM\Column(name="equipo_visitante_id", type="integer")
*/
private $idEquipoVisitante;
/**
* @var int
*
* @ORM\Column(name="equipo_local_id", type="integer")
*/
private $idEquipolocal;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set temporada
*
* @param integer $temporada
*
* @return Partido
*/
public function setTemporada($temporada)
{
$this->temporada = $temporada;
return $this;
}
/**
* Get temporada
*
* @return int
*/
public function getTemporada()
{
return $this->temporada;
}
/**
* Set competicion
*
* @param string $competicion
*
* @return Partido
*/
public function setCompeticion($competicion)
{
$this->competicion = $competicion;
return $this;
}
/**
* Get competicion
*
* @return string
*/
public function getCompeticion()
{
return $this->competicion;
}
/**
* Set golesLocal
*
* @param integer $golesLocal
*
* @return Partido
*/
public function setGolesLocal($golesLocal)
{
$this->golesLocal = $golesLocal;
return $this;
}
/**
* Get golesLocal
*
* @return int
*/
public function getGolesLocal()
{
return $this->golesLocal;
}
/**
* Set golesVisitantes
*
* @param integer $golesVisitantes
*
* @return Partido
*/
public function setGolesVisitantes($golesVisitantes)
{
$this->golesVisitantes = $golesVisitantes;
return $this;
}
/**
* Get golesVisitantes
*
* @return int
*/
public function getGolesVisitantes()
{
return $this->golesVisitantes;
}
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Equipo", inversedBy="partidos_visitantes")
* @ORM\JoinColumn(name="equipo_local_id",referencedColumnName="id")
*/
private $equipoVisitante;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Equipo", inversedBy="partidos_locales")
* @ORM\JoinColumn(name="equipo_visitante_id", referencedColumnName="id")
*/
private $equipoLocal;
/**
* Set idEquipoVisitante
*
* @param int $idEquipoVisitante
*
* @return Partido
*/
public function setIdEquipoVisitante($idEquipoVisitante)
{
$this->idEquipoVisitante = $idEquipoVisitante;
return $this;
}
/**
* Get idEquipoVisitante
*
* @return int
*/
public function getIdEquipoVisitante()
{
return $this->getIdEquipoVisitante();
}
/**
* Set idEquipoLocal
*
* @param int $idEquipoLocal
*
* @return Partido
*/
public function setIdEquipoLocal($idEquipoLocal)
{
$this->idEquipolocal = $idEquipoLocal;
return $this;
}
/**
* Get idEquipoLocal
*
* @return int
*/
public function getIdEquipoLocal()
{
return $this->getIdEquipoLocal();
}
/**
* @return mixed
*/
public function getEquipoVisitante()
{
return $this->equipoVisitante;
}
/**
* @param mixed $equipoVisitante
*/
public function setEquipoVisitante($equipoVisitante)
{
$this->equipoVisitante = $equipoVisitante;
}
/**
* @return mixed
*/
public function getEquipoLocal()
{
return $this->equipoLocal;
}
/**
* @param mixed $equipoLocal
*/
public function setEquipoLocal($equipoLocal)
{
$this->equipoLocal = $equipoLocal;
}
}