Php 带过滤器的symfony2丢失形式参数
我需要做一个带有过滤器的下拉菜单,但是如果我添加一个查询生成器,请求会忽略发布的值 在我的表单类型中,区别是这样的Php 带过滤器的symfony2丢失形式参数,php,forms,symfony,post,request,Php,Forms,Symfony,Post,Request,我需要做一个带有过滤器的下拉菜单,但是如果我添加一个查询生成器,请求会忽略发布的值 在我的表单类型中,区别是这样的 ->add('jugador', 'entity', array( 'class' => 'MSKLigaBundle:Jugadores', 'label' => 'Jugador', 'query_builder' => function( \Doctrine\ORM\EntityRepository $er) use($equi
->add('jugador', 'entity', array(
'class' => 'MSKLigaBundle:Jugadores',
'label' => 'Jugador',
'query_builder' => function( \Doctrine\ORM\EntityRepository $er) use($equipoId){
return $er->createQueryBuilder('j')
->where('j.equipo_id = :equipo')
->setParameter('equipo', $equipoId);
},
'property' => 'nombreCompleto',
'empty_value' => "el jugador...",
'required' => true))
另一个水,没有过滤器
->add('jugador', 'entity', array(
'class' => 'MSKLigaBundle:Jugadores',
'label' => 'Jugador',
'empty_value' => "Seleccionar Jugador",
'property' => 'nombreCompleto'))
谢谢你的帮助
编辑:这是处理数据的控制器
$em = $this->getDoctrine()->getManager();
$request = $this->getRequest();
if($request->getMethod() == 'GET')
{
$equipoId = $request->query->get('equipo');
$equipo = $em->getRepository('MSKLigaBundle:Equipos')->find($equipoId);
$pena = new Penas();
if($equipo != null)
$pena->setEquipo( $equipo );
else
return $this->redirect($this->generateUrl( 'admin_penas'));
$penasForm = new PenasType();
$penasForm->setEquipo($equipoId);
$form = $this->createForm( $penasForm, $pena);
}
else if($request->getMethod() == 'POST')
{
$pena = new Penas();
$form = $this->createForm( new PenasType(), $pena);
$form->bind($request);
$pena->setPartidosPendientes( $pena->getPartidosTotales() );
if( $form->isValid() ){
$em->persist($pena);
$em->flush();
}
}
return $this->render( 'MSKLigaBundle:Penas:new.html.twig', array('form' => $form->createView() ) );
请在生成此表单的地方发布控制器。在发布表单时请检查$equipoId的值,如果相同,则可能与che queryYes不匹配。。。控制器是键,equipo ID在post方法中更改,然后“querybuilder”返回另一组“equipo”,谢谢!