Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将ParamConverter与条令和Symfony2一起使用_Php_Symfony_Doctrine - Fatal编程技术网

Php 如何将ParamConverter与条令和Symfony2一起使用

Php 如何将ParamConverter与条令和Symfony2一起使用,php,symfony,doctrine,Php,Symfony,Doctrine,我知道我可能错过了一些非常简单的东西,但我不知道是什么,我对symfony还是很陌生 我希望有一个像/admin/user/edit/1234这样的url,其中控制器使用paramConverter从其ID自动加载用户。但我一直收到一个错误 Some mandatory parameters are missing ("id") to generate url for route. 我试着跟随,但它不是很详细,它是如何工作的 这是我的路线 admin_edit_user: patter

我知道我可能错过了一些非常简单的东西,但我不知道是什么,我对symfony还是很陌生

我希望有一个像/admin/user/edit/1234这样的url,其中控制器使用paramConverter从其ID自动加载用户。但我一直收到一个错误

Some mandatory parameters are missing ("id") to generate url for route.
我试着跟随,但它不是很详细,它是如何工作的

这是我的路线

admin_edit_user:
    pattern: /users/edit/{id}
    defaults: {_controller: MyBundle:AdminUsers:editUser}
    requirements:
        id: \d+
这是我的控制器

<?php
//...
    class AdminUsersController extends Controller
    {
        //... 
        public function editUserAction(Request $request , User $user)
        {
            $info = $user->getInfo();

            if(is_null($info))
            {
                $info = new UserInfo();
            }

        $userInfoForm = $this->createForm(new UserInfoType() , $info , array(
        'action' => $this->generateUrl('admin_edit_user')
    ));

        $userInfoForm->handleRequest($request);

        if($userInfoForm->isValid())
        {
            if(is_null($user->getInfo()))
            {
                $user->setInfo($info);
            }

            $em = $this->getDoctrine()->getManager();
            $em->persist($info);
            $em->persist($user);
            $em->flush();
            $request->getSession()->getFlashBag()->add('notice' , 'User Info succesfully updated.');
        }

        return $this->render('MyBundle:Admin/Users:edit.html.twig' , array(
            'user_info_form' => $userInfoForm->createView(),
            'user' => $user
        ));
    }
}

别理我!我发现了问题。当我为表单生成URL时,我缺少所需的参数

$userInfoForm = $this->createForm(new UserInfoType() , $info , array(
    'action' => $this->generateUrl('admin_edit_user')
));
需要

$userInfoForm = $this->createForm(new UserInfoType() , $info , array(
    'action' => $this->generateUrl('admin_edit_user' , array('id' => '1234'))
));