AnisimovAM
@AnisimovAM
Программист

Как в SonataAdminBundle сделать 2 страницы редактирования сущности с разными формами?

Добрый день.

Как в SonataAdminBundle сделать 2 страницы редактирования сущности с разными формами?
Например, на одной странице редактируются все поля сущности User (полное редактирование), а на другой - только некоторые (сокращенное редактирование).
Можно ли как-то контекст задать?
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
@koninka
Можно разруливать контект на уровне запроса с дополнительным параметром (a-ля editing_context=simple) и в методе configureFormFields доставать его из реквеста
$this->getRequest()->get('editing_context', $fallbackContext)

и уже на его основе определять какие поля добавлять в форму.

Тем более у сонатовского форм маппера есть удобные хелперы ifTrue, ifFalse и можно написать красивый код без всяких соплей наподобие:
$formMapper
    ->add('name')
    ->ifTrue($editingContext === 'full')
        ->add('someField1')
        ->add('someField2')
    ->ifEnd()
    ->add('createdAt')
;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Просто создать две разных админских сущностей, связанных с одной сущностью.
Например, вот так сделано в моём бандле в конфиге, а вот тут показываются записи по условию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы