ABS*_*ABS 5 symfony symfony-2.3
我使用Symfony2.3.我有一个这样的表格:
<form action="{{ path("member_update") }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form.pic) }}
...
{{ form_widget(form._token) }}
</form>
Run Code Online (Sandbox Code Playgroud)
我想在目录中上传用户图片.然后我在控制器中使用它:
$member , $form , $dm is defined...
if ($form->isValid()) {
// Handle profile picture upload process
$uploadDir=dirname($this->container->getParameter('kernel.root_dir')) . '/web/bundles/mybundle/myfiles';
$form['pic']->getData()->move($uploadDir,$member->getId());
// End of upload
$dm->persist($member);
$dm->flush();
return $this->redirect($this->generateUrl("member_profile"));
}
Run Code Online (Sandbox Code Playgroud)
它必须工作,但我看到这个错误:
Exception: Serialization of 'Symfony\Component\HttpFoundation\File\UploadedFile' is not allowed
1. in pathToMyProject...\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\DataCollector\DataCollector.php line 27
2. at serialize(.....
Run Code Online (Sandbox Code Playgroud)
有什么问题??!
问题解决了!我在MemberType中更改了这一行:
$builder->add('pic','file');
Run Code Online (Sandbox Code Playgroud)
对此:
$builder->add('pic','file', array('mapped'=>false));
Run Code Online (Sandbox Code Playgroud)
我的错误是我必须解释"pic"字段没有映射到实体(或Mongo中的Document,作为我的项目).其他Symfony内核尝试将"pic"的值放在Entity的字段中.我没有任何持有文件的字段!我将图片上传到目录中并仅存储实体内图片的路径.当我改变这个,问题很容易解决!:-)所以请记住向Symfony清楚地解释所有事情!
| 归档时间: |
|
| 查看次数: |
3818 次 |
| 最近记录: |