Symfony 上传个人资料图片
我想允许我的用户更改他们的个人资料图片。我跟踪了Symfony2的文档,它很有效。问题是,我不能使用{{form\u widgetform.file}}调用我的表单,但我必须使用{{form\u widgetform}。这很烦人,因为我在formBuilder中有其他值,我希望能够自定义我的小树枝中的每个字段 这是我的模板Symfony 上传个人资料图片,symfony,file-upload,Symfony,File Upload,我想允许我的用户更改他们的个人资料图片。我跟踪了Symfony2的文档,它很有效。问题是,我不能使用{{form\u widgetform.file}}调用我的表单,但我必须使用{{form\u widgetform}。这很烦人,因为我在formBuilder中有其他值,我希望能够自定义我的小树枝中的每个字段 这是我的模板 <?php namespace L3O1\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType
<?php
namespace L3O1\UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class ProfilePictureFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// add your custom field
$builder->add('file', 'file', array(
'required'=>false))
/*->add('aboutMe', 'textarea', array(
'attr'=>array(
'rows'=>4,
'cols'=>50 ),
'required'=>false))*/
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'L3O1\UserBundle\Entity\User'
));
}
public function getName()
{
return 'l3o1_user_profile';
}
}
如果您在尝试执行{{form_widgetform.file}时出现任何错误,请与我们共享 如果{form_widgetform.file}}仅未保存文件,则您的问题一定是表单缺少令牌或enctype:
<form id="someid" action="{{somepath}}" method="post" {{ form_enctype(form) }}>
{#your codes#}
{{ form_widget(form._token) }}
</form>
我的{form_widgetform.file}上载文件并删除当前文件。您的解决方案有效,但我不明白为什么需要使用令牌?谢谢我不确定是令牌还是enctype给您带来了问题,但是表单中需要令牌才能有效,如果在表单中启用了令牌,表单_enctype会将属性enctype=multipart/form data添加到表单中,以便上传文件。你可以通过谷歌来阅读symfonys表单代币:如果这对你有用,你可以把它当作答案,比如迷路的羔羊