表格即服务无效

时间:2017-09-10 13:41:59

标签: forms symfony symfony-3.2

我在Symfony 3.2中将加载形式作为服务的问题我创建了自定义字段:

class ImageType extends AbstractType
{
    private $path;

    /**
     * ImageType constructor.
     */
    public function __construct($path)
    {
        $this->path = $path;
    }

    /**
     * @return string
     */
    public function getParent()
    {
        return FileType::class;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'image';
    }

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'image_name' => ''
        ));
    }

    /**
     * @param FormView $view
     * @param FormInterface $form
     * @param array $options
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        $view->vars['image_name'] = $options['image_name'];
    }

    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {

        $builder
            ->setAttribute('image_name', $options['image_name'])
            ->addModelTransformer(new ImageTransformer($this->path));
    }
}

和service.yml:

services:
    app.form_image_type:
        class: AppBundle\Form\Type\ImageType
        arguments: ['%upload_directory%']
        tags: [form.type]

但是当我运行代码时,我有错误:

  

2L FileLoader.php第118行中的FileLoaderLoadException:   “tags”条目必须是/var/www/exammple.pl/app/config/services.yml中服务“app.form_image_type”的数组。检查你的YAML   /var/www/example/app/config/services.yml中的语法(正在使用   从“/var/www/example.pl/app/config/config.yml”导入。       YamlFileLoader.php第270行中的1/2 InvalidArgumentException:       “tags”条目必须是/var/www/example.pl/app/config/services.yml中服务“app.form_image_type”的数组。检查你的YAML   语法。

但根据文档,标签定义正确,所以修复了这个问题吗?

1 个答案:

答案 0 :(得分:3)

尝试使用此代码:

500px

使用3.2版

查看doc