大家好,我在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”在菜单链接上。 我怎么能这样做?
由于
答案 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