CakePHP html辅助链接方法省略了请求URL的id参数

时间:2012-06-14 14:47:57

标签: cakephp html-helper

我的视图包含用于更改页面语言的链接。索引,添加页面都很好。但是当涉及到单个文章的“编辑”或“查看”页面时,URL的末尾有一个ID号,这个号码在这个链接上以某种方式被省略了。链接变为

http://www.xxxxxx.com/index.php/categories/view/lang:chi

显然缺少身份证号码。链接应该是这样的

http://www.xxxxxx.com/index.php/categories/view/5/lang:chi

在视图文件中生成链接的代码是

$this->Html->link($language, array('lang' => $code));

我不知道为什么只有最后带有ID号的URL才会出现这样的问题。我使用了bake,因此控制器视图操作如下:

    public function view($id = null) {
            $this->Category->id = $id;
            if (!$this->Category->exists()) {
                    throw new NotFoundException(__('Invalid category'));
            }
            $this->set('category', $this->Category->read(null, $id));
    }

任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:0)

如果未在链接数组中指定id,则不会使用它。如果省略它们,则添加的唯一“魔法”是控制器和动作。

创建链接时需要传递id:

$this->Html->link($language, array('lang' => $code, $id));