2014-12-03 51 views
0

我有一個複雜的表單。此表單在控制器A中創建。 所有操作,如:編輯,添加,加載,索引 位於控制器A中,方法actionIndex對所有其他請求都很重要。一個控制器中的多個操作 - Symfony2

喜歡這個模式:

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

+0

已經沒有人的想法? – 2014-12-03 18:54:14

+0

您的表單是基於實體嗎?如果是這樣,大部分表單都可以由Symfony自己處理(http://symfony.com/doc/current/book/forms.html#forms-and-doctrine)。 否則,我建議你編寫單獨的類來處理表單,所以不要單獨控制器。 – 2014-12-03 19:43:22

+0

混合形式整個形式有很多實體。我該如何解決這個問題? – 2014-12-03 20:34:30

回答

0

我已經通過您的代碼脫脂和我說德語,所以我理解這一點。

在這裏覆蓋太多了,所以我只給你一些「關鍵字」。

從控制器向symfony服務外包業務邏輯,以保持控制器。 ($ zusaetzeArray等)

如果經濟上合理,爲表單數據創建實體和表單類型。

爲不同的表單狀態創建具有相應路由的多個控制器操作。

Symfony2的服務:https://stackoverflow.com/a/13099900/982075

相關問題