Um Usertem um Packageassociado a ele. Muitos usuários podem se referir ao mesmo pacote. Usernão pode existir sem um Packagedefinido. Userdeve possuir a relação. A relação é bidirecional, portanto, a Packagetem zero ou mais usuários.
Esses requisitos levam à ManyToOnerelação para Usere à OneToManyrelação de Packagena Doutrina 2. No entanto, package_idna usertabela (que é chave estrangeira) permite nullvalores. Eu tentei definir, nullable=falsemas comandar:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Diz que não há atributo nullablepara a relação ManyToOne. O que estou perdendo?
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 : resolvido. observe que isso está errado (observe as aspas duplas):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Embora isso seja correto:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_idainda está sinalizada como Null - Sim, Padrão - NULL. Qualquer ajuda é muito apreciada.