如何使关系为空 多对一.



我在两个实体之间有一个关系ManyToOne:Usuario和Departamento,有些用户没有任何部门,我想使实体Usuario中的字段departamento为空,如何做到这一点。我的代码如下所示:

<?php
namespace CECMEDTarifaBundleEntity;
use DoctrineORMMapping as ORM;
use SymfonyComponentSecurityCoreUserUserInterface;
use SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity;
use SymfonyComponentValidatorConstraints as Assert;
/**
 * Usuario
 *
 * @ORMTable()
 * @ORMEntity(repositoryClass="CECMEDTarifaBundleEntityUsuarioRepository")
 * @UniqueEntity("email")
  */
class Usuario implements UserInterface{
    /**
     * @var integer
     *
     * @ORMColumn(name="id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @var string
     * @AssertNotBlank(message="No debe dejar este campo vacío")
     * @ORMColumn(name="nombre", type="string",unique=true, length=255)
     */
    private $nombre;
    /**
     * @var string
     * @AssertNotBlank(message="No debe dejar este campo vacío")
     * @ORMColumn(name="apellidos", type="string", length=255)
     */
    private $apellidos;
    /**
     * @var string
     * @AssertNotBlank(message="No debe dejar este campo vacío")
     * @ORMColumn(name="email", type="string", length=255)
     */
    private $email;

    /**
     * @ORMManyToOne(targetEntity="Departamento", inversedBy="usuarios")
     * @ORMJoinColumn(name="id_departamento", referencedColumnName="id")
     */
    private $departamento;
/**
 * @ORMManyToOne(targetEntity="Departamento", inversedBy="usuarios")
 * @ORMJoinColumn(name="id_departamento", referencedColumnName="id", nullable=true)
 */
private $departamento;

如上所示,您应该将属性nullable放在JoinColumn

别忘了

更新架构doctrine:schema:update --force

此外,如果您已经生成了 setter,请记住更改它以接受可为空的值,如下所示setDepartamento(Departamento $departamento = null)

相关内容

  • 没有找到相关文章