处理表单提交时的最佳做法是什么

时间:2015-02-20 11:51:46

标签: php forms symfony

在我的Symfony2应用程序中,我有处理表单提交的操作。为了清理我的控制器,我想知道在哪里做最好的地方,如下所示,或者控制器是处理表单并验证它的正确位置。

public function addAction(Request $request)
{
    $article = new Article();
    $articleForm = $this->createForm(
        'web_article_type',
        $article
    );
    $articleForm->handleRequest($request);
    if ($articleForm->isValid()) {
        $manager = $this->getDoctrine()->getManager();
        $manager->persist($article);
        $manager->flush();
    }

    return $this->redirect($this->generateUrl('web_article_show'));
}

1 个答案:

答案 0 :(得分:2)

这已经是最佳实践形式了!

Controller是正确的位置,因为它处理来自前端的数据。如果表单出错,它还会呈现模板;如果表单有效,则会触发其他操作。

在以下情况下,我只能远离这种方式:

您的表单应该针对不同的用户角色/权限使用不同的字段进行扩展。

然后我将该表单定义为服务,以便更好地处理表单和更好的设计。

相关问题