我有一个问题需要扩展表单。我只是想改变欧盟风格的生日格式(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 - 它不起作用。
任何想法/帮助?
麦克
答案 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”}'