2014-01-21 100 views
0

我正在使用zend框架1.12.3。控制器在zend中不起作用

的index.php:

switch(strtolower($_SERVER['REQUEST_URI'])) { 
     case '/admin/': 
     define('APPLICATION_PATH', 
     realpath(dirname(__FILE__) . '/../application/admin')); 
     break; 
     case '/store/': 
     define('APPLICATION_PATH', 
     realpath(dirname(__FILE__) . '/../application/stoe')); 
     break; 
     default: 
     define('APPLICATION_PATH', 
     realpath(dirname(__FILE__) . '/../application/store')); 
     break; 
    } 

管理控制器:

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

    } 

    public function indexAction() 
    { 
     $request = $this->getRequest(); 

     $this->view->assign('title', 'Login Form'); 
     $this->view->assign('username', 'User Name'); 
     $this->view->assign('password', 'Password'); 
    } 


    public function authAction() 
    { 
     echo 'test';exit;  
    } 

當我訪問網址: http://pro.localhost/admin/ - 這是工作

但是當我訪問網址: http://pro.localhost/admin/auth 顯示錯誤'找不到頁面'和'消息:無效控制LER規定(管理員)「

+0

顯示您的.htaccess文件 – emaillenin

+0

您是否擁有AuthAction的相關視圖文件auth.phtml? – user466764

回答

1

$_SERVER['REQUEST_URI']等於到 '/管理/',當您訪問 '/管理/ auth /中',所以APPLICATION_PATH被定義爲存儲路徑來代替。您應該檢查$_SERVER['REQUEST_URI']是否以'/ admin /'開頭。你不應該需要一個switch語句來檢查兩個條件。

if (strpos(strtolower($_SERVER['REQUEST_URI']), '/admin/') === 0) { 
    define(
     'APPLICATION_PATH', 
     realpath(dirname(__FILE__) . '/../application/admin') 
    ); 
} else { 
    define(
     'APPLICATION_PATH', 
     realpath(dirname(__FILE__) . '/../application/store') 
    ); 
} 
+0

謝謝。它正在工作 –