我很可能完全以错误的方式解决这个问题。我完全不熟悉这个框架..
我正在开发的网站有两个主要是分开的“部分”。信息/社区的一半,商业的一半。我正在使用以下目录结构:
--application
----default
------controllers
------layouts
------models
------views
----store
------controllers
------layouts
------models
------views
--config
--library
--public
我想在浏览产品时使用URL结构,如下所示:
/视图/类别/型号/版本
这会产生一个特定的产品/版本 - 但我也想回溯(浏览所有版本,所有模型等)。我无法弄清楚如何实现这一点..我的路线设置如下:
bootstrap.php中
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(
'view/:cid/:sku/:rev',
array('module' => 'store', 'controller' => 'index', 'action' => 'index')
);
$router->addRoute('view', $route);
这适用于提取特定产品,但在遗漏任何3个标记参数时抛出异常(它恢复到默认模块并抱怨控制器“视图”不存在)。是否可以放入可选标签,它将继续使用存储模块下的视图控制器1-3个参数?我错过了这一点吗?
我在框架文档中没有找到任何内容,但如果我找不到页面,我也不会感到惊讶。有一些关于Zend Framework文档的内容让我发疯。
谢谢
答案 0 :(得分:4)
我不是一个真正的ZendFramework人,但很明显缺少的参数导致了这个问题。路径按相反顺序匹配。当传递3个参数并且期望为4时,它是否可以将NULL值传递给视图?
如果您尝试过以下内容怎么办?
$route = new Zend_Controller_Router_Route(
'view/:cid/:sku/:rev',
array('module' => 'store', 'controller' => 'index', 'action' => 'index', 'cid' => 0, 'sku' => 0, 'rev' => 0)
);
如果未提供默认值,则应传递默认值。