У меня есть эта сущность:
/**
* @ORM\Entity
* @ORM\Table(name="person")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "natural" = "NaturalPerson",
* "legal" = "LegalPerson"* })
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
*/
class Person {
use IdentifiedAutogeneratedEntityTrait;
/**
* Hook timestampable behavior
* updates createdAt, updatedAt fields
*/
use TimestampableEntity;
/**
* @ORM\Column(name="description", type="string", length=250, nullable=false)
*/
protected $description;
/**
* @ORM\Column(name="contact_person", type="string", length=250, nullable=true)
*/
protected $contact_person;
/**
* @ORM\Column(name="person_type", type="integer", nullable=false)
*/
protected $person_type = 1;
/**
* @ORM\OneToMany(targetEntity="Orders", mappedBy="person")
* */
protected $orders;
/**
* @ORM\Column(name="deletedAt", type="datetime", nullable=true)
*/
protected $deletedAt;
}
И я использую Doctrine Table Inheritance здесь, поэтому я хочу сделать набор тестов, используя Nelmio Alice
для этого лица, как я должен иметь дело с discr
столбец? Я имею в виду, как я говорю Алисе, какой тип использовать? Я попробовал это:
FrontendBundle\Entity\Person:
Person{1..10}:
description: <text(15)>
contact_person: <text(75)>
person_type: <randomElement(array('1','2'))>
discr: <randomElement(array('natural','legal'))>
Но не работает с discr
не столбец на Person
сущность, любой совет?
Это интересный крайний случай. Я вижу два возможных решения:
создайте два разных типа сущности самостоятельно, т.е.
FrontendBundle\Entity\NaturalPerson:
Person{1..5}:
description: <text(15)>
contact_person: <text(75)>
person_type: <randomElement(array('1','2'))>
FrontendBundle\Entity\LegalPerson:
Person{6..10}:
description: <text(15)>
contact_person: <text(75)>
person_type: <randomElement(array('1','2'))>
Или, чтобы сократить его и избежать дублирования, вы можете использовать наследование:
FrontendBundle\Entity\Person:
person (template):
description: <text(15)>
contact_person: <text(75)>
person_type: <randomElement(array('1','2'))>
FrontendBundle\Entity\NaturalPerson:
Person{1..5} (extends person):
FrontendBundle\Entity\LegalPerson:
Person{6..10} (extends person):
Если ни одна из этих работ не работает, сообщите об этом на github, чтобы мы могли найти решение.
Других решений пока нет …