Symfony 2.8 - 在表单字段小部件模板中显示某些实体值
Symfony 2.8 - display certain entity value in form field widget template
我正在构建一个自定义文件上传小部件,我会在其中显示上次上传的文件名。我创建了 FormType class 并在 form/fields.html.twig
中添加了以下内容:
{% block custom_document_widget %}
{% spaceless %}
{# here I want to include code to display filename #}
{# display file input #}
{% set type = 'file' %}
{{ block('form_widget_simple') }}
{% endspaceless %}
{% endblock %}
我知道可以解析当前字段的值{{ form.vars.value }}
,但最终该字段是文件输入,并没有之前上传的文件名的值。
为了存储上传的文件名,我在实体中有 $filename
变量,并希望在字段小部件模板中显示它。我该如何处理它?
最后,我不得不将文件名作为选项传递给代表我的 FileType
:
的嵌入式表单
$builder
->add('resumeFile', CustomDocsType::class, array(
'required' => false,
'constraints' => array(
new File(array(
'mimeTypes' => array(
'application/pdf',
),
'mimeTypesMessage' => 'mimetype',
)),
),
'filename' => $trainee->getResumeOriginal(),
))
在我的 CustomDocsType 中:
class CustomDocsType extends AbstractType
{
public function buildView(FormView $view, FormInterface $form, array $options)
{
parent::buildView($view, $form, $options);
$view->vars = array_merge($view->vars, array(
'filename' => $options['filename']
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'filename' => null
));
}
public function getParent()
{
return FileType::class;
}
}
现在我只需要访问模板中的文件名:
{{ form.vars.filename }}
我正在构建一个自定义文件上传小部件,我会在其中显示上次上传的文件名。我创建了 FormType class 并在 form/fields.html.twig
中添加了以下内容:
{% block custom_document_widget %}
{% spaceless %}
{# here I want to include code to display filename #}
{# display file input #}
{% set type = 'file' %}
{{ block('form_widget_simple') }}
{% endspaceless %}
{% endblock %}
我知道可以解析当前字段的值{{ form.vars.value }}
,但最终该字段是文件输入,并没有之前上传的文件名的值。
为了存储上传的文件名,我在实体中有 $filename
变量,并希望在字段小部件模板中显示它。我该如何处理它?
最后,我不得不将文件名作为选项传递给代表我的 FileType
:
$builder
->add('resumeFile', CustomDocsType::class, array(
'required' => false,
'constraints' => array(
new File(array(
'mimeTypes' => array(
'application/pdf',
),
'mimeTypesMessage' => 'mimetype',
)),
),
'filename' => $trainee->getResumeOriginal(),
))
在我的 CustomDocsType 中:
class CustomDocsType extends AbstractType
{
public function buildView(FormView $view, FormInterface $form, array $options)
{
parent::buildView($view, $form, $options);
$view->vars = array_merge($view->vars, array(
'filename' => $options['filename']
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'filename' => null
));
}
public function getParent()
{
return FileType::class;
}
}
现在我只需要访问模板中的文件名:
{{ form.vars.filename }}