检查cakephp上的路线网址

时间:2012-05-25 09:58:26

标签: php cakephp cakephp-2.0

大家好,我在cakephp 2网站上有这样的菜单:

<ul class="nav">
<li><?php echo $this->Html->link('Home', array('controller' => 'posts', 'action' => 'index')); ?></li>
<li><?php echo $this->Html->link('Add post', array('controller' => 'posts', 'action' => 'add')); ?></li>
<li><a href="#contact">Contact</a></li>
</ul>

我必须检查我是否在页面上添加class =“selected”在菜单链接上。 我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:1)

在您的视图文件中,您还可以执行以下操作:

$this->request->params

我建议你编写自己的帮助程序,它将使用与HtmlHelper :: link相同的args实现一个方法,并在内部调用并返回HtmlHelper,但在它将比较$ this-&gt; request-&gt; params与传递的数组之前第一个arg。如果匹配,则可以在第3个arg中注入类名。

像这样的东西,自己实现:

class MyHelper extends AppHelper {
    public $helpers = array('Html');
    public function link($title, $url, $options) {
    /** 
     * if ($this->View->request->params ...
     * do your matching logic here
     * and if it matches: $options['class'] = 'active';
     */
    return $this->Html->link($title, $url, $options
}

答案 1 :(得分:0)

我在一段时间后写了一个(CakePHP 1.2)助手,自动执行此操作:

http://richardathome.com/blog/cakephp-smarter-links

应该非常直接地将其移植到2.0