EasyAdmin - форма обновления пароля выдает ошибку при пустом пароле

Я использую стандартную сущность Symfony 4 User, созданную make:auth и EasyAdmin 2.0.4.

При редактировании существующего пользователя поле пароля остается пустым (что хорошо).

При отправке существующей формы редактирования пользователя, когда поле пароля остается пустым, я получаю следующую ошибку:

Ожидаемый аргумент типа "string", "NULL", указанный в пути к свойству "password".

Как разрешить EasyAdmin игнорировать поле пароля при обновлении, когда его значение пусто?


person cromdev    schedule 30.01.2019    source источник
comment
Я бы предположил, что вы не ожидаете, что вы настроите пользователя без пароля. Довольно опасно в обычном мире. Может быть, он даже настаивает на том, чтобы вы этого не делали.   -  person RiggsFolly    schedule 30.01.2019


Ответы (1)


Для этого используйте опцию empty_data. Обработайте пустой пароль в своем контроллере.

easy_admin:
    entities:
        User:
[...]
            edit:
                    - { property: 'password', type: 'text', type_options: { required: false, empty_data: '' } }
person kampfq    schedule 30.01.2019
comment
для справки, вот что я сделал в AdminController: ``` защищенная функция updateAgencyEntity(Agency $entity, Form $editForm) { $postedPassword = $editForm->get('password')->getData(); if (!empty($postedPassword)) { $entity-›setPassword($this-›passwordEncoder-›encodePassword($entity-›getUser(), $postedPassword)); } родитель::updateEntity($entity); } ``` - person cromdev; 02.02.2019