2014-12-03 7 views
0

У меня сложная форма. Эта форма создается в контроллере 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

Не имеет одну идею? –

+0

Являются ли ваши формы основаны на сущности? Если это так, большую часть формы можно обработать самим Symfony (http://symfony.com/doc/current/book/forms.html#forms-and-doctrine). В противном случае я бы посоветовал вам писать отдельные классы, которые будут обрабатывать форму, а не отдельные контроллеры. –

+0

, которые являются смешанными формами, вся форма имеет множество объектов. как я могу это решить? –

ответ

0

Я пробежал свой код, и я говорю по-немецки, так что я понимаю.

Это было бы слишком много для покрытия здесь, поэтому я просто даю вам несколько «ключевых слов».

Аутсорсинг бизнес-логики от контроллеров до сервисов symfony для поддержания контроллеров light. ($ zusaetzeArray и т. д.)

Создайте объекты и формы для данных формы, если это имеет смысл экономически.

Создайте несколько действий контроллера с соответствующими маршрутами для разных состояний форм.

Symfony2 Услуги: https://stackoverflow.com/a/13099900/982075