路由全部通过调用Router :: connect('catch to','where send to');
所以可以简单:
Router::connect('/food/tips', '/tips/index/food');
或优选的方法(使用内建在网址构建蛋糕)
Router::connect('/food/tips/*', array('controller' => 'tips', 'action' => 'index', 'food');
第一种方法采用一个字符串参数,并把它传递给另一字符串,这将是一个网址,你将不得不赶上你的控制器,并期望通过URL传递参数。
第二种方法使用内置URL前这需要用钥匙控制器和动作的阵列的蛋糕(还有其他选择:http://api.cakephp.org/class/router#method-Routerurl) 第二优选由于正确的格式和未来的灵活性(I相信)。
第二种方法中的任何传递参数都只是作为数组中未命名的项目传递。命名参数仅作为键控元素传递。所以,如果我想创建这样一个URL这个
/职位/索引/查找:所有/页:2
我会写这样的网址:
Router::connect('/url_to_catch', array('controller' => 'posts', 'action' => 'index', 'find' => 'all', 'page' => 2);
所以只是为了完成,我实际上将通过你的参数通过命名:
Router::connect('/happiness/tips/best_tips', array('controller' => 'tips', 'action' => 'index', 'items' => array('happiness', 'best_tips'));
这将需要一个有趣的在你的提示控制器中,看起来像这样:
function tips(){ $this->passedArgs['items']; }
啊你打我吧!我想我输入缓慢;) – 2011-04-27 15:26:59
谢谢@ vindia,这不是解决我的问题(我的错,我会编辑原来的问题) 至于约定,我的问题是,我有一个提示控制器,但没有提示部分。 。所以我需要将每个'节/提示'路由到提示控制器... – yossi 2011-04-27 16:06:44
谢谢,我尝试了几个教程和guides.same结果。无法路由基于动作值的控制器..不知道为什么 – yossi 2011-04-28 14:55:45