A User
è associato a uno Package
. 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 uno Package
ha zero o più utenti al suo interno.Doctrine 2 non può usare nullable = false in manyToOne relation?
Questi requisiti portano a ManyToOne
relazione storia User
e OneToMany
rapporto di Package
in dottrina 2. Tuttavia package_id
in user
tabella (cioè di chiave) consente null
valori. Ho provato a installare nullable=false
ma comando:
php app/console doctrine:generate:entities DL --path="src" --no-backup
dice che non c'è nessun attributo 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. si prega di notare che questo è sbagliato (nota le virgolette):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Mentre questo è corretto:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
Grazie, ho provato ma sfortunatamente la colonna 'package_id' è ancora contrassegnata come Null - Sì, Default - NULL. Ogni aiuto è molto apprezzato. – gremo
Non importa, una doppia citazione completa la cosa. Questo è 'nullable =" false "' è sbagliato! – gremo
Hai provato a eliminare completamente il database e a crearlo di nuovo? Ho appena dato un'occhiata al mio database (usando la stessa annotazione JoinColumn come menzionato sopra) ed è contrassegnato come NotNull! – Sgoettschkes