【问题标题】:Multiple Actions in one Controller - Symfony2一个控制器中的多个操作 - Symfony2
【发布时间】:2014-12-03 18:06:09
【问题描述】:

我有一个复杂的表格。此表单在控制器 A 中创建。 所有操作,例如:编辑、添加、加载、索引 是在控制器 A 中定义的,并且 actionIndex 方法对于所有其他请求都是必不可少的。

喜欢这个架构:

public class controllerA  {


function actionIndex(Requerst r){

    r.handleRequest();

    if ($form->get('index')->isClicked()){
      // Index Action
    }
    if ($form->get('add')->isClicked()){
      $this->actionAdd();
    }
    // ...
}
function actionAdd(){}

}

}

如何在不同的控制器中分离请求? 其实感觉不太好。

这是我的控制器的实际代码: http://pastebin.com/HuXhV37q

【问题讨论】:

  • 您的表单是否基于实体?如果是这样,大部分表单都可以由 Symfony 自己处理(symfony.com/doc/current/book/forms.html#forms-and-doctrine)。否则,我建议您编写单独的类来处理表单,而不是单独的控制器。
  • 是混合表格,整个表格有很多实体。我该如何解决这个问题?

标签: forms symfony controller submission


【解决方案1】:

我浏览了你的代码,我会说德语,所以我明白了。

这里太多了,所以我只给你一些“关键词”。

将控制器的业务逻辑外包给 symfony 服务以保持控制器轻便。 ($zusaetzeArray 等)

如果经济合理,则为表单数据创建实体和表单类型。

为不同的表单状态创建具有相应路由的多个控制器操作。

Symfony2 服务:https://stackoverflow.com/a/13099900/982075

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多