0

我想编辑一个客户的创建,我想在创建过程中添加一个字段。在创建期间,服务“sylius.controller.customer:createAction”被调用security.yml

sylius_shop_register:
    path: /register
    methods: [GET, POST]
    defaults:
        _controller: sylius.controller.customer:createAction
        _sylius:
            template: "@SyliusShop/register.html.twig"
            form: Sylius\Bundle\CoreBundle\Form\Type\Customer\CustomerRegistrationType
            event: register
            redirect:
                route: sylius_shop_account_dashboard
            flash: sylius.customer.register

但是我检查了很多我没有找到的 sylius 服务。如何访问此服务以自定义创建?

谢谢你的时间。

4

1 回答 1

0

您应该自定义表单而不是控制器。您可以在此处找到详细信息(sylius 自定义表单

这个想法是:

  1. 创建表单扩展:

    final class CustomerRegistrationType extends AbstractTypeExtension
        {
            /**
         * {@inheritdoc}
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            // Adding new fields works just like in the parent form type.
            $builder->add('YourField', TextType::class, [
                'required' => false,
                'label' => 'app.form.customer.yourfield',
            ]);
        }
        /**
         * {@inheritdoc}
         */
        public function getExtendedType()
        {
            return CustomerRegistrationType::class;
        }
    }
    
  2. 将此扩展注册为服务AppBundle/Resources/config/services.yml

  3. 添加相应的翻译,并添加一个新模板以显示您的新字段

问候

于 2017-04-29T06:18:29.307 回答