Seorang Usermemiliki satu yang Packageterkait dengannya. Banyak pengguna dapat merujuk ke paket yang sama. Usertidak bisa ada tanpa Packageditentukan. Userharus memiliki relasi. Relasi bersifat dua arah, jadi a Packagememiliki nol atau lebih pengguna di dalamnya.
Persyaratan ini mengarah pada ManyToOnehubungan Userdan OneToManyhubungan Packagedalam Ajaran 2. Namun package_iddalam usertabel (yaitu kunci asing) memungkinkan nullnilai. Saya sudah mencoba pengaturan nullable=falsetetapi perintah:
php app/console doctrine:generate:entities DL --path="src" --no-backup
Mengatakan bahwa tidak ada atribut nullableuntuk relasi tersebut ManyToOne. Apa yang saya lewatkan?
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 : terselesaikan. harap dicatat bahwa ini salah (catat tanda kutip ganda):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
Meskipun ini benar:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_idtersebut masih ditandai sebagai Null - Yes, Default - NULL. Bantuan apa pun sangat dihargai.