Einem User
ist einer Package
zugeordnet. Viele Benutzer können auf dasselbe Paket verweisen. User
kann nicht ohne eine Package
definierte existieren. User
sollte die Beziehung besitzen. Die Beziehung ist bidirektional, daher Package
hat a null oder mehr Benutzer.
Diese Anforderungen führen zu ManyToOne
Beziehung für User
und OneToMany
Beziehung Package
in Lehre 2. Jedoch package_id
in user
Tabelle (dh Fremdschlüssel) kann null
Werte. Ich habe versucht, nullable=false
aber Befehl:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Sagt, dass es kein Attribut nullable
für die Beziehung gibt ManyToOne
. Was fehlt mir?
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 : gelöst. Bitte beachten Sie, dass dies falsch ist (doppelte Anführungszeichen beachten):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Während dies richtig ist:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
quelle
package_id
immer noch als Null markiert - Ja, Standard - NULL. Jede Hilfe wird sehr geschätzt.nullable="false"
ist falsch!@ORM\Column(nullable=true)
, meinen Manytoone auf Null zu setzen!console doctrine:cache:clear-metadata
Befehl verwenden