Um User
tem um Package
associado a ele. Muitos usuários podem se referir ao mesmo pacote. User
não pode existir sem um Package
definido. User
deve possuir a relação. A relação é bidirecional, portanto, a Package
tem zero ou mais usuários.
Esses requisitos levam à ManyToOne
relação para User
e à OneToMany
relação de Package
na Doutrina 2. No entanto, package_id
na user
tabela (que é chave estrangeira) permite null
valores. Eu tentei definir, nullable=false
mas comandar:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Diz que não há atributo nullable
para 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)
fonte
package_id
ainda está sinalizada como Null - Sim, Padrão - NULL. Qualquer ajuda é muito apreciada.nullable="false"
está errado!@ORM\Column(nullable=true)
tornar meu manytoone anulável!console doctrine:cache:clear-metadata
comando