2013-10-29 71 views
1

我在上Symfony的2Symfony的2 - 联系表格和验证

简单的形式接触形式的麻烦

<form id="contact-form" method="post" action=""> 
    <label for="name">Name: </label> 
    <input type="text" name="name" id="name" class="input" /> 
    <label for="subject">Subject: </label> 
    <input type="text" name="subject" id="subject" class="input" /> 
    <label for="text">Text: </label> 
    <textarea name="text" id="text" class="input"></textarea> 
</form> 

我也读到了验证和形式的文件,但我真的不了解它是怎么回事。

我有两个问题

  1. 应该在哪里张贴值去,我说的是在形式上action属性。
  2. 我如何验证这个简单的联系表格。

如果你们在这里给我看或链接到如何验证这个简单的表单,最好的办法是。

谢谢

回答

2

您可以将动作设置为路由中的任何路径。示例<form action="{{ path(...) }}">。从路径中,会有重定向到您的控制器。在你的控制器中,你可以验证表单。我会给你举例。

<form id="contact-form" method="post" action="{{ path('form_contact') }}"> 
    <label for="name">Name: </label> 
    <input type="text" name="name" id="name" class="input" /> 
    <label for="subject">Subject: </label> 
    <input type="text" name="subject" id="subject" class="input" /> 
    <label for="text">Text: </label> 
    <textarea name="text" id="text" class="input"></textarea> 
</form> 

从这里,这种形式将通过路由

// in your routing.yml 
form_contact: 
    pattern: contact 
    defaults: 
     _controller: YourNewBundle:Test:contact 

现在,让我们去控制器部分

// TestController.php 
public function contact(){ 
    $request = $this->getRequest(); 
    if ($request->query->has('name') || $request->query->has('subject') || $request->query->has('text')){ 
     ... 
    } 
} 

只是用自己的代码定制。

+0

好吧,我明白了。谢谢 –