Cake PHP Plugin Проблемы с маршрутизацией вызовов

0

У меня странное поведение в CakePHP.

Я создал разные плагины, и для некоторых плагинов я создал страницу настроек.

Вызов:

[URL]/plugin_one/администратор/установка

[URL]/plugin_two/администратор/установка

Ссылки создаются таким образом:

$this->Html->link("Setting1", array("plugin" => "plugin_one", "controller" => "admin", "action" => "setting"));
$this->Html->link("Setting2", array("plugin" => "plugin_two", "controller" => "admin", "action" => "setting"));

Все идет нормально.

Он работает, когда я нажимаю "Setting1", я получаю страницу настроек для плагина One, если я нажму "Setting2", я получу страницу настроек для плагина Two.

НО:

Если я открыл страницу настроек для плагина One, а затем попытаюсь открыть страницу настроек для плагина Two, как-то вызывается контроллер администратора "Plugin One", с представлением "Plugin Two".

Поскольку я задал заголовок страницы в действии "настройки" контроллера, я вижу это странное поведение.

$this->set("title_for_layout", "Plugin One - Settings");

В рамках моего действия "настройка" я также получаю данные настройки плагина:

$this->request->data = $settings["plugin_one"];

Так, например, я на странице настроек плагина One, мой заголовок страницы - "Plugin One - Settings", мое содержимое страницы - это разные параметры настройки "Plugin One".

Теперь я пытаюсь открыть страницу настроек "Плагин 2", а заголовок моей страницы - "Плагин Один - Настройки", содержимое моей страницы - это разные параметры настройки "Плагин два", но я не получаю данные настроек из потому что мои данные запроса также являются данными запроса "Plugin One".

Самое смешное, это происходит так же.

Если я запустил страницу настроек "Плагин два", а затем попытаюсь открыть страницу настроек "Плагин один", это то же самое. Теперь я увижу заголовок "Plugin Two - Settings" на странице настроек "Plugin One" с данными запроса "Plugin Two".

Я думаю, что есть некоторые проблемы с внутренней маршрутизацией, что вы думаете?

Редактировать:

Я также использую плагин "Debug Toolbar". Если я называю "Plugin One" Settings, в "Debug Toolbar" → "Включить" → "Плагины", я вижу "Плагин один". Теперь я называю "Plugin Two" Settings, а в "Debug Toolbar" → "Включить" → "Плагины" я вижу "Плагин один".

Редактировать # 2:

Если я подождал около 5 минут (одна сигарета ;-)) и ударил F5, страница настроек "Plugin Two" загружена правильно, а внутри "Debug Toolbar" → "Включить" → "Плагины" я вижу "Плагин 2 "

Может ли быть проблема внутреннего кэширования, если я использую разные плагины с теми же именами контроллера и действия?

Теги:
cakephp

1 ответ

0
Лучший ответ

Я нашел следующее решение:

Переименовал контроллер...

plugin_one/admin => plugin_one/poAdmin plugin_two/admin => plugin_two/ptAdmin

и т.д...

Теперь это работает... похоже, что CakePHP не любит несколько одинаковых контроллеров namend в разных плагинах

Ещё вопросы

Сообщество Overcoder
Наверх
Меню