UserMa jeden Packagez nim związane. Wielu użytkowników może odnosić się do tego samego pakietu. Usernie może istnieć bez Packageokreślonego. Userpowinien być właścicielem relacji. Relacja jest dwukierunkowa, więc Packagema zero lub więcej użytkowników.
Te wymagania prowadzą do ManyToOnerelacji dla Useri OneToManyrelacji Packagew Doktrynie 2. Jednak package_idw usertabeli (czyli klucza obcego) dopuszcza się nullwartości. Próbowałem ustawić, nullable=falseale polecenie:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Mówi, że nie ma atrybutu nullabledla relacji ManyToOne. Czego mi brakuje?
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;
}
EDYCJA : rozwiązana. pamiętaj, że to źle (zwróć uwagę na podwójne cudzysłowy):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Chociaż jest to poprawne:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_idjest nadal oznaczona jako Null - Tak, Domyślnie - NULL. Każda pomoc jest bardzo ceniona.