Forms 表单即服务不起作用
我在Symfony 3.2中遇到加载表单为服务的问题,我将自定义字段创建为:Forms 表单即服务不起作用,forms,symfony,symfony-3.2,Forms,Symfony,Symfony 3.2,我在Symfony 3.2中遇到加载表单为服务的问题,我将自定义字段创建为: class ImageType extends AbstractType { private $path; /** * ImageType constructor. */ public function __construct($path) { $this->path = $path; } /** * @return
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]
但当我运行代码时,我有一个错误:
FileLoader.php第118行中的2/2 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\u image\u type”的数组。检查你的YAML
语法
但根据文档,标签定义正确,因此是否解决了此问题?请尝试以下代码:
tags:
- { name: form.type }
查看3.2版本您看到的是简化了标记语法的3.3文档。切换到3.2文档并遵循示例。