我在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 语法。
但根据文档,标签定义正确,所以修复了这个问题吗?