An Usertiene uno Packageasociado. Muchos usuarios pueden hacer referencia al mismo paquete. Userno puede existir sin un Packagedefinido. Userdebe ser dueño de la relación. La relación es bidireccional, por lo que a Packagetiene cero o más usuarios.
Estos requisitos conducen a una ManyToOnerelación para Usery una OneToManyrelación de Packageen Doctrine 2. Sin embargo, package_iden la usertabla (que es una clave externa) permite nullvalores. He intentado configurar nullable=falsepero comando:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Dice que no hay ningún atributo nullablepara la relación ManyToOne. ¿Qué me estoy perdiendo?
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Package", inversedBy="users")
*/
private $package;
}
class Package
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="package")
*/
private $users;
}
EDITAR : resuelto. tenga en cuenta que esto es incorrecto (tenga en cuenta las comillas dobles):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Si bien esto es correcto:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
fuente

package_idtodavía está marcada como Null - Yes, Default - NULL. Cualquier ayuda es muy apreciada.nullable="false"está mal!@ORM\Column(nullable=true)mi manytoone aceptara nulos.console doctrine:cache:clear-metadatacomando