0

我似乎无法弄清楚如何使用路由参数和设置功能。这是我所做的:

配置/routes.php:

Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'));

控制器/专业控制器.php:

public function display($linkname = null) {
    $this->set('test', $linkname);
    //$this->set('profession', $this->findByLinkname($linkname));
}

查看/专业/display.ctp:

<?php echo $test; ?>

当我打开 /professions/test 时,页面是空的。为什么?(如您所见, $test 只是一个测试。我注释掉了我真正打算做的事情。但这也不起作用)

4

2 回答 2

1

好的,RFTM...在官方书籍中找到它。必须像这样指定传递参数:

Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'), array('pass' => array('linkname'));

现在它起作用了。

于 2012-08-14T21:27:08.647 回答
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'
        )
    )
);

显然,如果这更容易或者更符合您的喜好,您可以将所有这些放在一条线上。

于 2012-08-14T21:37:37.470 回答