An User
tiene uno Package
asociado. Muchos usuarios pueden hacer referencia al mismo paquete. User
no puede existir sin un Package
definido. User
debe ser dueño de la relación. La relación es bidireccional, por lo que a Package
tiene cero o más usuarios.
Estos requisitos conducen a una ManyToOne
relación para User
y una OneToMany
relación de Package
en Doctrine 2. Sin embargo, package_id
en la user
tabla (que es una clave externa) permite null
valores. He intentado configurar nullable=false
pero comando:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Dice que no hay ningún atributo nullable
para 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)
package_id
todavía está marcada como Null - Yes, Default - NULL. Cualquier ayuda es muy apreciada.