在我的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'));
}
答案 0 :(得分:2)
这已经是最佳实践形式了!
Controller是正确的位置,因为它处理来自前端的数据。如果表单出错,它还会呈现模板;如果表单有效,则会触发其他操作。
在以下情况下,我只能远离这种方式:
您的表单应该针对不同的用户角色/权限使用不同的字段进行扩展。
然后我将该表单定义为服务,以便更好地处理表单和更好的设计。