An en Usera un Packageassocié. De nombreux utilisateurs peuvent se référer au même package. Userne peut exister sans un Packagedéfini. Userdevrait posséder la relation. La relation est bidirectionnelle, donc a Packagen'a aucun utilisateur ou plus.
Ces exigences mènent à la ManyToOnerelation pour Useret à la OneToManyrelation de Packagedans Doctrine 2. Cependant, package_iddans la usertable (c'est-à-dire la clé étrangère) autorise les nullvaleurs. J'ai essayé de régler nullable=falsemais commande:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Dit qu'il n'y a pas d'attribut nullablepour la relation ManyToOne. Qu'est-ce qu'il me manque?
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;
}
EDIT : résolu. veuillez noter que c'est faux (notez les guillemets):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Bien que ce soit correct:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_idest toujours marquée comme Null - Oui, par défaut - NULL. Toute aide est très appréciée.