CakePHP的路由器,路由不工作
问题描述:
我有这样的路线:CakePHP的路由器,路由不工作
Router::connect(
'/:controller/*',
array('controller'=>'con3'),
array('controller'=>'con1|con2')
);
我想每次调用
/con1/x1/x2
直接到
/con3/x1/x2
和
/con2/y1/y2
到
/con3/y1/y2
它不工作,为什么?
答
如果需要路由到/con3/
和/con1/
/或/con2/
根据自己的约束,你需要的是一个定制Route class
。为此,没有比Mark Story's tutorial on custom Route
classes更好的地方。
否则,你当然可以只扩展你的控制器(和不离身空)是这样的:
<?php
class Con3Controller extends Con1Controller{
// maybe add model here if you don't have
// var $uses in Con1Controller
// otherwise, extend is just fine
}
?>
在这种情况下,你不需要惹喜欢你现在的中转航线。对象继承会照顾你的“别名”。
答
你有没有考虑这样的:
Router::connect('/con1/:action/*', array('controller' => 'con3'));
Router::connect('/con2/:action/*', array('controller' => 'con3'));
谢谢@Oerd,但是,我如何从con1和con2扩展con3? – yossi 2011-05-02 12:20:19
@yossi多重继承不是PHP中的开箱即用功能:)现在,我认为我更了解您的需求,我已经更新了我的答案。 – Oerd 2011-05-02 17:26:00
这可能是答案......对我期待蛋糕提供内置解决方案感到羞耻:)谢谢 – yossi 2011-05-03 06:28:30