Sylius v1.0.0简单表格扩展

时间:2017-10-11 22:00:55

标签: sylius

我有一个问题需要扩展表单。我只是想改变欧盟风格的生日格式(dd.MM.yyyy)。所以我创建了src / AppBundle / Form / Extension / CustomerProfileTypeExtension.php

<?php

namespace AppBundle\Form\Extension;

use Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;

final class CustomerProfileTypeExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{

// Change to EU Style dd.MM.yyyy
$builder->add('birthday', BirthdayType::class, [
'format' => 'dd.MM.yyyy',
]);
}

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return CustomerProfileType::class;
}
}

我将AppBundle / Resources / config / services.yml更改为

services:
app.form.extension.type.customer_profile:
class: AppBundle\Form\Extension\CustomerProfileTypeExtension
tags:
- { name: form.type_extension, extended_type: Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType } 

但不要改变。缓存清楚没有帮助我! 我也只是在sylius示例中更改了删除性别字段或将required更改为true - 它不起作用。

任何想法/帮助?

麦克

3 个答案:

答案 0 :(得分:0)

我刚测试了这个并且因为您错过了以下行而引发了错误

use Symfony\Component\Form\Extension\Core\Type\BirthdayType;

实际上,删除

use Symfony\Component\Form\Extension\Core\Type\TextType;

因为它没有被使用,所以将它替换为BirthdayType行

一旦我补充说,它运作良好。

约翰

答案 1 :(得分:0)

O.K。 - 使其正确:

ACME / SRC /的appbundle /窗体/扩展/ CustomerProfileTypeExtension.php

<?php

namespace AppBundle\Form\Extension;

use Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
use Symfony\Component\Form\FormBuilderInterface;

final class CustomerProfileTypeExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{

// Change to EU Style dd.MM.yyyy
$builder->add('birthday', BirthdayType::class, [
'format' => 'dd.MM.yyyy',
'required' => true,
]);
}

/**
* {@inheritdoc}
*/
public function getExtendedType()
{
return CustomerProfileType::class;
}
}

ACME / SRC /的appbundle /资源/配置/ services.yml

services:
app.form.extension.type.customer_profile:
class: AppBundle\Form\Extension\CustomerProfileTypeExtension
tags:
- { name: form.type_extension, extended_type: Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType } 

相同 - 没有变化 - 如果我改变到这里。 ACME /应用/配置/ services.yml

没有变化的领域。没有错误 - 当我清除缓存时也没有。

答案 2 :(得分:0)

解决方案:我忘记在config.yml中导入services.yml' - {resource:“services.yml”}'