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 
    } 
} 

和它們對應的視圖文件。 即,當我點擊http://www.mydomain.com/index它加載索引視圖。 我現在面臨的問題是,當我試圖訪問這個控制器的索引動作就會加載相應的視圖,但是當我試圖打dologin動作它給人的 錯誤

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

* 消息:操作 「dologin」 不存在,並沒有被困在__call()*

請求參數:

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

當我嘗試使用另一個控制器和操作時,情況也是如此。該索引操作也可以對該控制器正常運行,但不會在控制器中執行任何其他操作。

P.S:我都在預期駱駝套管動作名稱要落空的PARAMS Apache的配置文件

+0

我認爲這是事做與dologin。可能是其保留的關鍵詞。因爲當我使用其他名稱創建新函數時,它工作正常 –

回答

0

配置的mod_rewrite模塊的AllowOverride。因此,doLoginAction()將響應/ default/index/do-login,而不是dologin。如果您希望網址爲dologin,則應將操作重命名爲dologinAction()。

0

也可以在控制器級別使用連字符( - )分隔的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) 
相關問題