Symfony 2 - 联系表格和验证

时间:2013-10-29 10:58:18

标签: oop validation symfony

我在Symfony 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. 我如何验证这个简单的联系表格。
  3. 如果你们在这里向我展示或链接到如何验证这个简单的表格,那将是最好的。

    由于

1 个答案:

答案 0 :(得分: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')){
        ...
    }
}

只需使用您自己的代码进行自定义。