একটি User
এক হয়েছে Package
এর সাথে জড়িত। অনেক ব্যবহারকারী একই প্যাকেজ উল্লেখ করতে পারেন। সংজ্ঞায়িত User
ব্যতীত উপস্থিত থাকতে পারে না Package
। User
সম্পর্কের মালিক হওয়া উচিত সম্পর্ক দ্বি নির্দেশমূলক, সুতরাং Package
এর মধ্যে শূন্য বা আরও বেশি ব্যবহারকারী রয়েছে users
এই প্রয়োজনীয়তা হতে 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
এখনও নাল - হ্যাঁ, ডিফল্ট - নুল হিসাবে চিহ্নিত হয়েছে। কোন সাহায্যের অনেক প্রশংসা করা হয়।