如何在CakePhp的当前页面中添加活动类

hel*_*ikh 6 css php cakephp cakephp-2.0 cakephp-2.1

我有类似这个问题的问题

如何识别CakePHP中的活动菜单链接

我在default.ctp文件中有一个页面,我想在链接上添加"活动"类.我如何识别页面的当前网址,然后在链接上应用该类..我已经按照答案在那里

      $url = $this->Html->url('INPUT_THE_URL') ;
     $active = $this->request->here == $url? true: false;
Run Code Online (Sandbox Code Playgroud)

我不知道我怎么能在我的代码中这样做...抱歉,因为我是cakephp的新手..这是我的代码

 **default.ctp file** 

 <li>
      <?php echo $this->Html->link('Dashboard', array('controller'=>'users','action' => 'controlpanel'), array('title' => 'Dashboard','class' => 'shortcut-dashboard'));?></li>



  <li> <?php echo $this->Html->link('Contacts', array('controller'=>'contacts','action' => 'index'), array('title' => 'Contacts','class' => 'shortcut-contacts'));?></li>
Run Code Online (Sandbox Code Playgroud)

我想像这样添加一个类li

   <li class = 'active''>
Run Code Online (Sandbox Code Playgroud)

AnN*_*LaI 12

这是一个简单的逻辑如下

<li class="<?php echo (!empty($this->params['action']) && ($this->params['action']=='controlpanel') )?'active' :'inactive' ?>">
  <?php echo $this->Html->link('Dashboard', array('controller'=>'users','action' => 'controlpanel'), array('title' => 'Dashboard','class' => 'shortcut-dashboard'));?>
</li>

<li class="<?php echo (!empty($this->params['action']) && ($this->params['action']=='index') )?'active' :'inactive' ?>">
  <?php echo $this->Html->link('Contacts', array('controller'=>'contacts','action' => 'index'), array('title' => 'Contacts','class' => 'shortcut-contacts'));?></li>
Run Code Online (Sandbox Code Playgroud)


Fai*_*sal 7

如果您有一个不同的控制器并且您声明了一个具有相同名称的方法,并且上面的代码不起作用,那么您可以执行以下操作:

<li class="<?php echo (($this->params['controller']==='hotels')&& ($this->params['action']=='view') )?'active' :'' ?>" >
   <?php echo $this->Html->link('Hotels', array('controller' => 'hotels', 'action' => 'view')); ?>
</li>

<li class="<?php echo (($this->params['controller']==='packages')&& ($this->params['action']=='view') )?'active' :'' ?>" >
   <?php echo $this->Html->link('Packages', array('controller' => 'packages', 'action' => 'view')); ?>
</li>
Run Code Online (Sandbox Code Playgroud)

这里view方法在不同的控制器中声明.我希望它对你有所帮助.