У меня есть два контроллера, которые разделяют большую часть своего кода (но должны быть, тем не менее, разными контроллерами). Очевидным решением (по крайней мере, для меня) является создание класса и создание на нем двух контроллеров. Дело в том ... где это сказать? Теперь у меня это в app_controller.php, но в этом все беспорядочно.Где поставить родительский класс контроллера в CakePHP?
4
A
ответ
9
В торте компоненты используются для хранения логики, которая может использоваться несколькими контроллерами. Каталог - это/app/controller/components. Например, если у вас есть какая-то общая логика утилиты, у вас будет объект UtilComponent и файл в/app/controlers/components, называемый UtilComponent.php.
<?php
class UtilComponent extends Object {
function yourMethod($param) {
// logic here.......
return $param;
}
}
?>
Затем в классах контроллеров, вы бы добавить:
var $components = array('Util');
Затем вы вызываете методы, как:
$this->Util->yourMethod($yourparam);
Дополнительная информация:
4
Кстати, если причиной того, что «они должны быть отдельными контроллерами», являются требуемые URL-адреса. Помните, что вы можете использовать маршрутизацию:
Router::connect('/posts', array('controller' => 'posts', 'action' => 'index'));
Router::connect('/comments', array('controller' => 'posts', 'action' => 'list_comments'));
Смежные вопросы
- 1. CakePHP 3.0 Где поставить запросы
- 2. CakePHP: где поставить логику «Услуги»
- 3. Где поставить общий код контроллера
- 4. CakePHP: где поставить общую логику модели?
- 5. Где поставить универсальную функциональность в проекте CakePHP
- 6. Где поставить определенную логику в CakePHP
- 7. Где поставить пользовательские глобальные функции в CakePHP?
- 8. MVVM, где поставить мой класс
- 9. Cakephp - MissingControllerException Класс контроллера Robots.txt
- 10. Где поставить класс интерфейса в C++
- 11. Где поставить класс AysncTask в ListActivity
- 12. Где поставить этот класс в django?
- 13. Где поставить класс, разделяемый дочерним пространством имен?
- 14. Android, где поставить свой собственный класс Bluetooth
- 15. Где я могу поставить класс триггера H2?
- 16. Структура папок проекта SMACSS - Где поставить класс?
- 17. Symfony2, где можно поставить глобальный класс?
- 18. Не знаете, где поставить мой тест в CakePHP
- 19. Где поставить «где»?
- 20. где поставить метод модели?
- 21. Где поставить «лишнюю» реализацию?
- 22. Где разместить собственный PHP-класс в CakePHP 3?
- 23. Где поставить вспомогательные методы?
- 24. Где поставить внешние банки?
- 25. Где поставить методы авторизации?
- 26. Где поставить ArrayList в Mvc модели
- 27. Функция CakePHP для представления по умолчанию, где поставить
- 28. Python: где поставить logging.getLogger
- 29. («Детский класс» - «Родительский класс»)
- 30. Где я могу поставить свою пользовательский класс задач в Gradle
Нет, на самом деле это не так, что в коде есть небольшая разница, но спасибо тем не менее :) – paradoja 2008-09-26 11:54:30