magento indexControllor.php переписывание URL не работает должным образом - PullRequest
1 голос
/ 25 ноября 2010

Привет, я создаю 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

С этим URL, однако,он ничего не делает: http://www.myshop.com/index.php/brand/add

В чем может быть проблема, вызывающая это?Это может избавить меня от многих проблем, связанных с перезаписью URL в Magento!

Ответы [ 2 ]

2 голосов
/ 25 ноября 2010

Это обычный недосмотр.

Этот URL-адрес

http://www.myshop.com/index.php/brand/

эквивалентен этому 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

Это эквивалентнона

http://www.myshop.com/index.php/brand/add/index

Что дает нам

Module:     brand
Controller: add
Action:     index

URL, который вы пытаетесь вызвать, ищет контроллер с именем

class Blank_Brand_AddController ....

Когда он ненайти его, он сообщает 404.

Если вы хотите вызвать метод addAction на вашем контроллере индекса, вы хотели бы следующий URL

http://www.myshop.com/index.php/brand/index/add
1 голос
/ 25 ноября 2010

Я написал статью об этом - возможно, это поможет: http://prattski.com/2010/06/24/magento-overriding-core-files-blocks-models-resources-controllers/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...