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


What's the best practice when handling form submissions

在我的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'));
}

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

控制器是它的正确位置,因为它处理来自前端的数据。此外,如果表单出现错误,它会呈现模板,如果表单有效,它会激发其他操作。

我只会在以下情况下摆脱这种方式:

您有一个表单,应该为不同的用户角色/权限使用不同的字段进行扩展。

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