Привет, я создаю indexcontrollor в модуле бренда, как это
class Blank_Brand_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { echo 'Foo Index Action'; $this->addaction(); } public function addAction() { echo 'Foo add Action'; $this->deleteAction(); } }
Когда я добавляю адрес: http://www.myshop.com/index.php/brand/, это повторяет действие Foo Index
http://www.myshop.com/index.php/brand/
С этим URL, однако,он ничего не делает: http://www.myshop.com/index.php/brand/add
http://www.myshop.com/index.php/brand/add
В чем может быть проблема, вызывающая это?Это может избавить меня от многих проблем, связанных с перезаписью URL в Magento!
Это обычный недосмотр.
Этот URL-адрес
эквивалентен этому URL-адресу
http://www.myshop.com/index.php/brand/index/index
Часть URI "brand" - это ваш модуль.Первая часть «index» URI - это ваш контроллер, вторая часть «index» URI - ваш метод действия.
Module: brand Controller: index Action: index
Итак, давайте рассмотрим этот URL
Это эквивалентнона
http://www.myshop.com/index.php/brand/add/index
Что дает нам
Module: brand Controller: add Action: index
URL, который вы пытаетесь вызвать, ищет контроллер с именем
class Blank_Brand_AddController ....
Когда он ненайти его, он сообщает 404.
Если вы хотите вызвать метод addAction на вашем контроллере индекса, вы хотели бы следующий URL
addAction
http://www.myshop.com/index.php/brand/index/add
Я написал статью об этом - возможно, это поможет: http://prattski.com/2010/06/24/magento-overriding-core-files-blocks-models-resources-controllers/