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
Symfony 缺少一些用于生成路由URL的必需参数(“用户”)_Symfony_Doctrine Orm_Symfony Forms - Fatal编程技术网

Symfony 缺少一些用于生成路由URL的必需参数(“用户”)

Symfony 缺少一些用于生成路由URL的必需参数(“用户”),symfony,doctrine-orm,symfony-forms,Symfony,Doctrine Orm,Symfony Forms,我的动机是编辑此编辑表单中显示的值。但当我按下编辑按钮时,它会抛出这个错误。我想不出来。有人能帮我解决代码中缺少的问题吗 在呈现模板期间引发了异常(“某些 缺少用于生成路由URL的必需参数(“用户”) 中的“sokosimu_editor_editor_editoruser”。) 第7行的SokosimuEditorBundle:User:editUser.html.twig。500内部 服务器错误-细枝错误\u运行时 路由器 sokosimu_editor_edit_editoruser:

我的动机是编辑此编辑表单中显示的值。但当我按下编辑按钮时,它会抛出这个错误。我想不出来。有人能帮我解决代码中缺少的问题吗

在呈现模板期间引发了异常(“某些 缺少用于生成路由URL的必需参数(“用户”) 中的“sokosimu_editor_editor_editoruser”。) 第7行的SokosimuEditorBundle:User:editUser.html.twig。500内部 服务器错误-细枝错误\u运行时

路由器

sokosimu_editor_edit_editoruser:
    path: /edit/editoruser/{user}
    defaults: {_controller:SokosimuEditorBundle:Editor:editEditorUser}
    requirements:
            _method:  GET|POST
    public function editEditorUserAction(User $user,Request $request){

    $form = $this->createForm(new EditUserType(),$user);

    //2. handle the submit (will happen on POST)
    $form->handleRequest($request);
    if($form ->isValid() && $form->isSubmitted()){
    }
    $em = $this->get('doctrine')->getManager();

    $editUser = $user ->getEditoruser();
    return $this->render('SokosimuEditorBundle:User:editUser.html.twig', array(
        'form' => $form->createView()
    ));
控制器

sokosimu_editor_edit_editoruser:
    path: /edit/editoruser/{user}
    defaults: {_controller:SokosimuEditorBundle:Editor:editEditorUser}
    requirements:
            _method:  GET|POST
    public function editEditorUserAction(User $user,Request $request){

    $form = $this->createForm(new EditUserType(),$user);

    //2. handle the submit (will happen on POST)
    $form->handleRequest($request);
    if($form ->isValid() && $form->isSubmitted()){
    }
    $em = $this->get('doctrine')->getManager();

    $editUser = $user ->getEditoruser();
    return $this->render('SokosimuEditorBundle:User:editUser.html.twig', array(
        'form' => $form->createView()
    ));
}

查看

 {% block title %}Edit User{% endblock%}

 {% block body %}

<form action="{{ path('sokosimu_editor_edit_editoruser') }}" method="post" {{ form_enctype(form) }} class="formedit">
    {{ form_errors(form) }}

    {{ form_row(form.alias)}}
    {{ form_row(form.email) }}
    {#{{ form_row(form.password) }}#}
    {{ form_row(form.mobile) }}
    {{ form_row(form.submit) }}
    {{ form_rest(form) }}
  </form>
 {% endblock %}
{%block title%}编辑用户{%endblock%}
{%block body%}
{{form_errors(form)}}
{{form_row(form.alias)}
{{form_row(form.email)}
{{{form_行(form.password)}}}}
{{form_row(form.mobile)}
{{form_row(form.submit)}
{{form_rest(form)}
{%endblock%}
表格

<?php

 namespace Sokosimu\EditorBundle\Form\Type;

 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
 use Symfony\Component\Form\AbstractType; 
 use Symfony\Component\Form\FormBuilderInterface;
 use Symfony\Component\OptionsResolver\OptionsResolverInterface;

 class EditUserType extends AbstractType
 {

   public function buildForm(FormBuilderInterface $builder, array $options)
  {
     $builder->add('alias','text',array('required'=>false));
     $builder->add('email', 'email',array('required'=>true));
    // $builder->add('password','password',array('required'=>true));
     $builder->add('mobile','text',array('required'=>false));
     $builder->add('submit', 'submit');
  }

   public function setDefaultOptions(OptionsResolverInterface   $resolver)
  {
    $resolver->setDefaults(array(
        'data_class' => 'Sokosimu\UserBundle\Entity\User'
     //   'data_class' => NULL
    ));
}

public function getName()
 {
   return 'editUser';
 }
}
修复到的路由

sokosimu_editor_edit_editoruser:
    path: /edit/editoruser/{userId}
    defaults: {_controller:SokosimuEditorBundle:Editor:editEditorUser}
    requirements:
        _method:  GET|POST
将控制器安装到

public function editEditorUserAction(Request $request, $userId)
{
    $user = $this->getDoctrine()->getRepository('SokosimuEditorBundle:User')->find($userId);
    $form = $this->createForm(new EditUserType(), $user);

    //2. handle the submit (will happen on POST)
    $form->handleRequest($request);

    if ($form->isValid() && $form->isSubmitted()) {
        $em = $this->get('doctrine')->getManager();

        $editUser = $user->getEditoruser();
    }

    return $this->render('SokosimuEditorBundle:User:editUser.html.twig', array(
        'form' => $form->createView()
    ));
}
确定到的路线

sokosimu_editor_edit_editoruser:
    path: /edit/editoruser/{userId}
    defaults: {_controller:SokosimuEditorBundle:Editor:editEditorUser}
    requirements:
        _method:  GET|POST
将控制器安装到

public function editEditorUserAction(Request $request, $userId)
{
    $user = $this->getDoctrine()->getRepository('SokosimuEditorBundle:User')->find($userId);
    $form = $this->createForm(new EditUserType(), $user);

    //2. handle the submit (will happen on POST)
    $form->handleRequest($request);

    if ($form->isValid() && $form->isSubmitted()) {
        $em = $this->get('doctrine')->getManager();

        $editUser = $user->getEditoruser();
    }

    return $this->render('SokosimuEditorBundle:User:editUser.html.twig', array(
        'form' => $form->createView()
    ));
}

您需要在以下路径中传递用户:

<form action="{{ path('sokosimu_editor_edit_editoruser', {'user': user}) }}" method="post" {{ form_enctype(form) }} class="formedit">

您需要在以下路径中传递用户:

<form action="{{ path('sokosimu_editor_edit_editoruser', {'user': user}) }}" method="post" {{ form_enctype(form) }} class="formedit">

在@panche14的帮助下,我对代码做了一些修改。@panche14的回答返回了object,但@param的形式应该是string或integer

return$this->render('SokosimuEditorBundle:User:editUser.html.twig',
数组('form'=>$form->createView(),
'user'=>$user->getId();
));

还可以在细枝文件中添加此项:

{'user':用户}

按照@panche14的规定


现在,编辑按钮可以按需要正常工作。

在@panche14的帮助下,我对代码进行了一些修改。@panche14的回答返回了object,但@param的形式应该是string或integer

return$this->render('SokosimuEditorBundle:User:editUser.html.twig',
数组('form'=>$form->createView(),
'user'=>$user->getId();
));

还可以在细枝文件中添加此项:

{'user':用户}

按照@panche14的规定


现在,,“编辑”按钮可以根据需要正常工作。

谢谢@panche14你给了我一些修改后的答案的想法。谢谢@panche14你给了我修改后的答案的想法。你应该给@panche14答案添加注释,这样他就可以改进它,而不是用几乎相同的答案内容。谢谢你的建议。这是因为我必须添加代码,而答案可能在评论中模棱两可。你应该对@panche14 answer进行评论,这样他就可以改进它,而不是用几乎相同的内容来回答。谢谢你的建议。这是因为我必须添加代码,而答案可能在注释中模棱两可。