上传个人资料图片

时间:2015-04-09 21:32:59

标签: symfony file-upload

我想允许我的用户更改他们的个人资料照片。我关注了Symfony2文档,它正在运行。问题是,我无法使用{{ form_widget(form.file) }}来调用我的表单,但我必须使用{{ form_widget(form) }}。它很烦人,因为我在formBuilder中有其他价值,我希望能够自定义我枝条中的每个字段。

这是我的formType。

<?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';
    }
}

1 个答案:

答案 0 :(得分:0)

如果您在尝试{{ form_widget(form.file) }}时遇到任何错误,请与我们分享。

如果{{ form_widget(form.file) }}仅保存文件,那么您的问题必须是遗失的令牌或缺少该表单的enctype:

<form id="someid" action="{{somepath}}" method="post" {{ form_enctype(form) }}>

    {#your codes#}

    {{ form_widget(form._token) }}

</form>