EasyAdminBundle: проверка не работает на CKEditorType - PullRequest
0 голосов
/ 06 января 2019

В моей панели администратора, созданной с помощью EasyAdminBundle , проверки моей формы работают только с полями, в которых нет CKEditorType. Некоторые поля необходимо отредактировать, поэтому я реализовал WYSIWYG с FOSCKEditorBundle .

Фрагмент из соответствующего поля:

- { property: 'content', type: 'FOS\CKEditorBundle\Form\Type\CKEditorType'} 

Когда я отправляю форму с пустым полем 'содержимого', я получаю InvalidArgumentException с ошибкой: Expected argument of type "string", "NULL" given. вместо ошибки проверки, такой как Пожалуйста, заполните это поле.

Фрагмент из соответствующего поля без CKEditor:

- { property: 'content' } 

=> проверка работает отлично.

Поле моей сущности:

    /**
     * @ORM\Column(type="text")
     * @Assert\NotBlank
     * @Assert\NotNull
     */
    private $content;

Профилировщик Symfony показывает, что это поле действительно имеет атрибут required.

Как включить проверки с типом поля CKEditor?

1 Ответ

0 голосов
/ 06 января 2019

Речь не о ckeditor. Все, что вам нужно, это исправить установщик контента, чтобы он принимал NULL через аргумент. Тогда процесс проверки должен быть запущен правильно:

public function setContent(?string $content) {
    $this->content = $content;

    retrun $this;
}

Проверка выполняется после того, как значения запроса установлены для полей данных формы (в вашем случае). Вы можете найти форму отправки потока здесь: https://symfony.com/doc/current/form/events.html#submitting-a-form-formevents-pre-submit-formevents-submit-and-formevents-post-submit

...