Sylius v1.0.0 简单表单扩展
Sylius v1.0.0 simple form extension
我在扩展表单时遇到问题。我只想更改欧盟风格的生日格式 (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 - 它不起作用。
有什么想法/帮助吗?
麦克
我刚刚测试了这个,它抛出了一个错误,因为你缺少以下行
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
事实上,删除
use Symfony\Component\Form\Extension\Core\Type\TextType;
因为它没有被使用,所以用 BirthdayType 行替换它
添加后,效果很好。
约翰
O.K。 - 使其正确:
acme/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\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/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 }
相同 - 没有变化 - 如果我改到这里。
acme/app/config/services.yml
字段没有变化。没有错误 - 当我清除缓存时也没有。
解决方案:我忘记在 config.yml
中导入 services.yml ´- { 资源: "services.yml" }´
我在扩展表单时遇到问题。我只想更改欧盟风格的生日格式 (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 - 它不起作用。
有什么想法/帮助吗?
麦克
我刚刚测试了这个,它抛出了一个错误,因为你缺少以下行
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
事实上,删除
use Symfony\Component\Form\Extension\Core\Type\TextType;
因为它没有被使用,所以用 BirthdayType 行替换它
添加后,效果很好。
约翰
O.K。 - 使其正确:
acme/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\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/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 }
相同 - 没有变化 - 如果我改到这里。 acme/app/config/services.yml
字段没有变化。没有错误 - 当我清除缓存时也没有。
解决方案:我忘记在 config.yml
中导入 services.yml ´- { 资源: "services.yml" }´