Reputation: 145
I have one relationship ManyToOne between two entities:Usuario and Departamento,Some users dont have any departaments,i want to make nullable the field departamento in the entity Usuario,how to make this.My code looks like this:
<?php
namespace CECMED\TarifaBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Usuario
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="CECMED\TarifaBundle\Entity\UsuarioRepository")
* @UniqueEntity("email")
*/
class Usuario implements UserInterface{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @Assert\NotBlank(message="No debe dejar este campo vacío")
* @ORM\Column(name="nombre", type="string",unique=true, length=255)
*/
private $nombre;
/**
* @var string
* @Assert\NotBlank(message="No debe dejar este campo vacío")
* @ORM\Column(name="apellidos", type="string", length=255)
*/
private $apellidos;
/**
* @var string
* @Assert\NotBlank(message="No debe dejar este campo vacío")
* @ORM\Column(name="email", type="string", length=255)
*/
private $email;
/**
* @ORM\ManyToOne(targetEntity="Departamento", inversedBy="usuarios")
* @ORM\JoinColumn(name="id_departamento", referencedColumnName="id")
*/
private $departamento;
Upvotes: 4
Views: 5169
Reputation: 29912
/**
* @ORM\ManyToOne(targetEntity="Departamento", inversedBy="usuarios")
* @ORM\JoinColumn(name="id_departamento", referencedColumnName="id", nullable=true)
*/
private $departamento;
As shown above you should put the attribute nullable
onto JoinColumn
to update your schema doctrine:schema:update --force
Moreover if you had already generated your setters, remember to change it in order to accept nullable values, like this setDepartamento(Departamento $departamento = null)
Upvotes: 6