एक Userइसके Packageसाथ जुड़ा हुआ है। कई उपयोगकर्ता एक ही पैकेज को संदर्भित कर सकते हैं। Userएक Packageपरिभाषित के बिना मौजूद नहीं हो सकता । Userसंबंध होना चाहिए। संबंध द्विदिश है, इसलिए Packageइसमें शून्य या अधिक उपयोगकर्ता हैं।
इन आवश्यकताओं के लिए नेतृत्व ManyToOneके लिए संबंध Userऔर OneToManyका संबंध Packageसिद्धांत 2 में हालांकि package_idमें userतालिका (कि विदेशी कुंजी है) की अनुमति देता है nullमान। मैंने सेटिंग की कोशिश की है, nullable=falseलेकिन कमांड:
php app/console doctrine:generate:entities DL --path="src" --no-backup
कहते हैं कि nullableसंबंध के लिए कोई विशेषता नहीं है ManyToOne। मुझे क्या याद आ रहा है?
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;
}
संपादित करें : हल। कृपया ध्यान दें कि यह गलत है (नोट दोहरे उद्धरण):
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable="false")
जबकि यह सही है:
@ORM\JoinColumn(name="package_id", referencedColumnName="id", nullable=false)
package_idअभी भी अशक्त के रूप में चिह्नित किया गया है - हाँ, डिफ़ॉल्ट - NULL। किसी भी प्रकार की मदद की बेहद सराहना की जाती है।