Как использовать действия контроллера с длинными именами?
-
16-10-2019 - |
Вопрос
Я создал пользовательский модуль. В файле контроллера функция как сильфоны.
/**
* Load slider images
*/
public function loadImageAction()
{
$this->loadLayout();
$this->renderLayout();
}
Объявление обработчика макета выглядит следующим образом.
<layout version="0.1.0">
<slider_slider_loadImage>
<reference name="content">
<block type="slider/load" name="load_custom_slider" template="slider/slider.phtml" />
</reference>
</slider_slider_loadImage>
</layout>
Но это не загружает файл шаблона. Если я переименую действие контроллера как loadimageAction(){ ...}
Тогда это работает.
Кто -нибудь может объяснить, как я могу использовать имена действий несколькими словами?
Eg: loadImageAction()
navNextAction()
Любое разъяснение по этому поводу будет оценено.
Решение
Это сработало.
Действие контроллера, как показано ниже.
/**
* Load slider images
*/
public function loadImageAction()
{
$this->loadLayout();
$this->renderLayout();
}
mayout.xml файл
<layout version="0.1.0">
<slider_slider_loadimage>
<reference name="content">
<block type="slider/load" name="load_custom_slider" template="slider/slider.phtml" />
</reference>
</slider_slider_loadimage>
</layout>
Проблема была более ранним обработчиком slider_slider_loadImage
. Анкет Я изменил это на slider_slider_loadimage
Анкет Теперь он работает нормально.
Другие советы
Насколько я знаю, Magento не различает имена действий несколькими словами.
Вы можете посмотреть на код в mage_core_controller_varien_action.
У многих модулей Magento есть имена действий, которые более чем одно слово, и они не делают ничего смешного, чтобы позаботиться об этом. См. Mage_CMS, например.
Боюсь, ваша ошибка где -то еще.