0

У меня есть файл контроллера с двумя действиями: т.е.Zend рамки: никаких других действий, кроме индексного действия в контроллере вызываемая

class IndexController extends Zend_Controller_Action 
{ 

    public function init() 
    { 
     /* Initialize action controller here */ 
    } 

    public function indexAction() 
    { 
     // action body 
    } 

    public function doLoginAction() 
    { 
     // action body 
    } 
} 

и их соответствующие файлы представлений. i.e, когда я ударил http://www.mydomain.com/index, он загружает индексный вид. Проблема я столкнулся в том, что при попытке доступа к индексной действие этого контроллера будет загрузить соответствующий вид, но когда я пытаюсь попасть в действие dologin это дает ошибку

http://www.mydomain.com/index/dologin

* Сообщение: Действие "dologin" не существует и не был зажат в __call() *

параметров запроса:

array (
    'controller' => 'index', 
    'action' => 'dologin', 
    'module' => 'default', 
) 

То же самое происходит, когда я пытаюсь использовать его с другим контроллером и действием. Действие индекса отлично работает для этого контроллера, но не любое другое действие в контроллере.

P.S: Я настроил mod_rewrite модуля и AllowOverride ALL в конфигурационном файле Apache

+0

Я думаю, что это было что-то делать с дологином. может быть его зарезервированным ключевым словом. потому что, когда я создаю новую функцию с именем someother, она отлично работает –

ответ

0

Camel-обсаженное название действий, как ожидается, будет разбита в Params. Поэтому doLoginAction() будет отвечать на/default/index/do-login, а не на голосование. Если вы хотите, чтобы URL-адрес был дологином, вы должны переименовать действие в dologinAction().

0

Вы также можете использовать дефис (-) разделенные URL-адреса на уровне контроллера.

Предположим, вам нужен URL, как это:

http://www.mydomain.com/do-some-stuff/my-stuff/

Затем контроллер должен быть назван:

DoSomeStuffController (as class name) && DoSomeStuffController.php (as controller file name) 

и

myStuffAction() (as your method name)