常规MVC路由被视为REST路由

时间:2012-09-06 04:46:19

标签: php zend-framework

我有一个名为AjaxController的简单控制器,

<?php
    class AjaxController extends Zend_Controller_Action {

    public function init() {
        $params = $this->_getAllParams();
        Zend_Debug::dump($params);
    }

    public function cartAction() {
        $params = $this->_getAllParams();
        Zend_Debug::dump($params);
    }
}

?>

我正在调用此网址 - 来自jQuery的http://example.com/ajax/cart,如下所示:

$.post(base_path + "ajax/cart/", { },
 function(data) {
     alert("Data Loaded: " + data);
 });

当我通过jQuery调用/当我直接访问URL

时,我收到404错误(未找到操作)

我单独获得以下输出(对于init函数):

array(4) {
  ["controller"] => string(4) "ajax"
  ["action"] => string(3) "get"
  ["id"] => string(4) "cart"
  ["module"] => string(7) "default"
}

此处操作为“get”,“cart”进入ID(就像Zend Rest Route一样)。相反,动作名称应为“购物车”。这有什么不对?

如果我通过ini文件添加以下路由,则路由可以正常工作:

routes.about.type = "Zend_Controller_Router_Route_Static"
routes.about.route = "ajax/cart"
routes.about.defaults.controller = "ajax"
routes.about.defaults.action = "cart"

但我无法在每个控制器中为所有我的操作添加这样的路由。

我创建了一个测试控制器来测试它。

<?php

Class TestController extends Zend_Controller_Action {

    function indexAction() {
        echo "Index"; exit();
    }

    function testAction() {
        echo "Test"; exit();
    }
}
?>

只有索引操作有效。测试操作不起作用(抛出EXCEPTION_NO_ACTION异常)

Zend Framework版本 - 1.12.0

0 个答案:

没有答案