An ne User
ha uno Package
associato. Molti utenti possono fare riferimento allo stesso pacchetto. User
non può esistere senza un Package
definito. User
dovrebbe possedere la relazione. La relazione è bidirezionale, quindi a Package
ha zero o più utenti al suo interno.
Questi requisiti portano alla ManyToOne
relazione per User
e alla OneToMany
relazione di Package
in Dottrina 2. Tuttavia package_id
nella user
tabella (che è la chiave esterna) consente i null
valori. Ho provato a impostare nullable=false
ma comando:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Dice che non ci sono attributi nullable
per la relazione ManyToOne
. Cosa mi manca?
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 : risolto. tieni presente che questo è sbagliato (nota le virgolette doppie):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Anche se questo è corretto:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_id
è ancora contrassegnata come Null - Sì, Default - NULL. Ogni aiuto è molto apprezzato.