Symfony3 - مضاعفة جدول ثنائي الاتجاه

0

هنا مشكلتي:

لدي فئة مجردة اسمه UserBase الذي يمتد إلى جميع كيانات المستخدمين:

/**
* Class UserBase
* @ORM\MappedSuperclass()
*/
abstract class UserBase implements UserInterface, \JsonSerializable {

/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

....

في هذا الكيان ، هناك علاقة ثنائية الاتجاه بين كيان يسمى ChatConversation :

 /**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\ManyToMany(
 *     targetEntity="AppBundle\Entity\ChatConversation",
 *     inversedBy="users"
 * )
 * @ORM\JoinTable(
 *     name="chat_user_conversation",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="conversation_id", referencedColumnName="id")}
 * )
 */
private $conversations;

ChatConversation صف دراسي:

class ChatConversation {
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\ManyToMany(
 *     targetEntity="AppBundle\Entity\UserBase",
 *     mappedBy="conversations"
 * )
 */
private $users;

يبدو هذا الرمز صحيحًا جدًا بالنسبة لي ولكن عندما أحاول تحديث مخطط قاعدة البيانات ، يؤدي هذا إلى حدوث خطأ:

خطأ في وحدة التحكم

آمل أن يساعدني شخص ما في اكتشاف الخطأ في رمزي ، شكرًا لك!

1 إجابة

0

سبب المشكلة هو البرنامج النصي لتحديث مخطط العقيدة الذي يحاول إنشاء chat_user_conversation "انضمام" لكل فئة فرعية تمدد UserBase.

للتغلب على ذلك ، يمكنك استخدام تجاوز الإقران في تعريف الكيانات الخاصة بك.

/**
 * @ORM\Entity
 * @ORM\AssociationOverrides({
 *      @ORM\AssociationOverride(name="conversations",
 *          [email protected]\JoinTable(
 *              name="chat_user_conversation",
 *              joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="conversation_id", referencedColumnName="id")}
 *          )
 *      )
 * })
 */
class Admin extends UserBase
{
}
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام