Php 我想上传一张带有symfony2和doctor的个人资料图片
在User.php(实体名为User)中,我在用户实体中有一个名为Php 我想上传一张带有symfony2和doctor的个人资料图片,php,symfony,orm,doctrine-orm,doctrine,Php,Symfony,Orm,Doctrine Orm,Doctrine,在User.php(实体名为User)中,我在用户实体中有一个名为userPic的字段,键入String 在文件UserType.php中,我提到了userPic,如下所示: public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('userFullname') ->add('userName') ->
userPic
的字段,键入String
在文件UserType.php中,我提到了userPic
,如下所示:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('userFullname')
->add('userName')
->add('userEmail')
->add('userPassword')
->add('userPic', 'file', array ('label'=>'profile Picture'))
->add('gender','choice',array('choices' => array('m' => 'Male', 'f' => 'Female')))
->add('isActive')
;
}
现在在控制器中,我得到如下所示的表单字段
/**
* Creates a new User entity.
*
*/
public function createAction(Request $request)
{
$entity = new User();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('user_show', array('id' => $entity->getId())));
}
return $this->render('MWANRegisterBundle:User:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView(),
));
}
我必须在哪里给出保存图片的路径?如何将上载的文件保存到所需目录中,并将目录路径保存到数据库中?您需要在实体中创建上载方法。查看此链接以了解更多详细信息
克里斯蒂安的回答是有效的,不过我只想指出更具体的方法,如何做被要求的事情。简单地做:
if ($form->isValid()) {
$file = $form->getData()['file'];
$file->move('/your/path/to/your/file', 'yourFileName');
// Do the rest
...
}
希望这能有所帮助。从官方文档来看:我已经有了用户实体类,其中有getter setter setUserPic()getUserPic(),我在其中遇到了一些问题,我有一个问题,请相应地指导我,我将不胜感激。这个问题与FOS用户包有关,我希望在RegisterType中创建的自定义表单中嵌入角色。我已经从基本实体扩展了我的用户实体。对于一个新问题,请随意创建一个新问题,因为注释不适用于此用途。此外,它将获得比评论更好的可视性。谢谢通知,因为我在这里的声誉太低,这就是为什么Stakeoverflow不允许我问很多问题的原因。
if ($form->isValid()) {
$file = $form->getData()['file'];
$file->move('/your/path/to/your/file', 'yourFileName');
// Do the rest
...
}