2013-10-29 86 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

好吧,我明白了。謝謝 –