我似乎无法弄清楚如何使用路由参数和set-function。这是我做的:
配置/ routes.php文件:
Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'));
控制器/ ProfessionsController.php:
public function display($linkname = null) {
$this->set('test', $linkname);
//$this->set('profession', $this->findByLinkname($linkname));
}
查看/职业/ display.ctp:
<?php echo $test; ?>
当我打开/专业/测试时,页面为空。为什么? (正如你所看到的,$ test只是一个测试。我评论了我真正打算做的事情。但这也不起作用)
答案 0 :(得分:1)
好的,RFTM ......在官方书中找到了它。传递参数必须如此指定:
Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'), array('pass' => array('linkname'));
现在可行。
答案 1 :(得分:0)
它详细解释了如何在CakePHP Book中执行您所要求的内容:
http://book.cakephp.org/2.0/en/development/routing.html#passing-parameters-to-action
或者,根据Eike的回答(但不那么粗鲁),试试这个:
Router::connect(
'/professions/:linkname',
array(
'controller' => 'professions',
'action' => 'display'
),
array(
'pass' => array(
'linkname'
)
)
);
显然你可以将这一切都放在一行,如果这更容易,或者更符合你的喜好。