表单永远不会在symfony2

时间:2015-12-02 06:48:04

标签: php forms symfony

我是symfony2的新手。

我正在研究搜索功能,这是我在indexAction中的代码:

  /**
 * @Route("/admin/users/", name="userspage")
 */
public function indexAction(Request $request)
{

    $repo = $this->getDoctrine()->getRepository('AppBundle:User');
    $users = $repo->getUsers();

    //create
    $form = $this->createForm(new SearchType());

    if ($form->handleRequest($request)->isSubmitted()) {
        if($form->isValid()){
            return new Response("Valid");
        } else {
            return new Response("Not Valid");
        }    
    }

    return $this->render('AppBundle:User:index.html.twig', array(
        'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        'active_nav' => 'users',
        'users' => $users,
        'form' => $form->createView(),
    ));
}

这是我的FormType:

class SearchType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        parent::buildForm($builder, $options);

        $builder->add('term', 'text' , array('attr'=> array('placeholder'=>
        'Enter name to search', 'class' => 'form-control'),
        'label' => 'Search: '
        ));
    }

    public function getName()
    {
        return 'user_search';
    }
}

以下是我呈现表单的方式:

   <div class="row row-padding no-gutter">
        <form action="{{ path('userspage') }}" method="GET">
            <div class="col-lg-1">
                {{ form_label(form.term) }}
            </div>   
            <div class="col-lg-4">
                {{ form_widget(form.term) }}
            </div> 
            <div class="col-lg-4">
                <button type="submit" class="btn btn-default"><i class="fa fa-search"></i> Search</button>
            </div> 
            {{ form_rest(form) }}
        </form>
    </div> 

我的问题是,表单永远不会有效,永远不会被提交。为什么会这样?

感谢。

1 个答案:

答案 0 :(得分:2)

默认情况下,表单的方法是POST。您可以使用T const*或将->setMethod('GET')添加到选项中,以使表单使用GET方法。

还建议使用method => 'GET'{{ form_start(form) }}代替硬编码的html标记,因为这样可以确保您的方法正常。

有关详细信息,请参阅http://symfony.com/doc/current/book/forms.html#changing-the-action-and-method-of-a-form