2016-11-28 2 views
0

Я использую тип коллекции для поля билетов в формообразователе и пытаюсь добавить к нему стороннюю проверку. Но я получаю некоторую ошибку только при добавлении проверки подтверждения.Ожидаемый аргумент типа «строка», «Doctrine ORM PersistentCollection», данный

Entity 
/** 
* @Assert\Length(
*  min = 1, 
*  max = 10, 
*  minMessage = "Atlest one ticket to be added", 
*  maxMessage = "Not allowed" 
*) 
    * 
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\EventTicket", inversedBy="events", cascade={"persist"}) 
*/ 
public $tickets; 


Type 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
    ->add('tickets', CollectionType::class, [ 
     'entry_type' => EventTicketType::class, 
     'allow_add' => true, 
     'allow_delete' => true 
    ]) 
} 

Ошибка:

Ожидаемого аргумент типа "строка", "Учение \ ORM \ PersistentCollection" дал

ответ

3

@Assert\Length является строкой ограничения и не может быть использован для типа коллекции. Вы должны использовать @Assert\Count для типа коллекции. Вот как это должно выглядеть:

/** 
* @Assert\Count(
*  min = 1, 
*  max = 10, 
*  minMessage = "At least one ticket to be added", 
*  maxMessage = "Not allowed" 
*) 
    * 
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\EventTicket", inversedBy="events", cascade={"persist"}) 
*/ 
public $tickets; 
Смежные вопросы