加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – CodeIgniter中的当前URI段

发布时间:2020-12-13 13:31:02 所属栏目:PHP教程 来源:网络整理
导读:在CodeIgniter视图中检查当前URI段的最佳方法是什么?我想要做的是使用当前的URI段[即$this- uri- segment(1)]以突出显示导航栏上的当前页面. 我想到的最好的事情就是去做 $data['current_uri'] = $this-uri-segment(1);$this-load-view('header',$data); 在
在CodeIgniter视图中检查当前URI段的最佳方法是什么?我想要做的是使用当前的URI段[即$this-> uri-> segment(1)]以突出显示导航栏上的当前页面.

我想到的最好的事情就是去做

$data['current_uri'] = $this->uri->segment(1);
$this->load->view('header',$data);

在我的每个控制器中,然后在header.php文件中,我检查$current_uri变量以确定应该突出显示导航的哪个部分.如你所知,这是一种非常繁琐的方式,但我却失去了一种更好的方法.

甚至可以扩展默认的Controller类来传递当前的URI段,但我不确定这是否可行,甚至不知道如何去做.

我自己使用类似于anchor()的额外函数.我称之为active_anchor(),它采用所有相同的参数加上另一个(uri).如果传递的uri字符串与active_anchor()url参数匹配,则函数会将类添加为“active”.

然后函数使用锚函数返回(函数所做的就是确定链接是否需要类’active’.

编辑:

我把这段代码放在一个名为’MY_url_helper.php’的文件中.这样,当url helper被加载时(我实际上是自动加载那个,因为我的几乎所有视图都使用它.)这只是一些快速代码,非常确定它会起作用.基本上它使用与anchor()函数相同的参数,但也使用$key变量.如果key和url匹配,它会向anchor标记添加一个“active”类.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('active_anchor'))
{
    function active_anchor($url = NULL,$title = NULL,$key = NULL,$params = array())
    {
        if ($url && $key)
        {
            if($key == $url)
            {
                if (array_key_exists ('class',$params))
                {
                    $params['class'] .= ' active';
                }
                else
                {
                    $params['class'] = 'active';
                }
            }
        }
        return anchor($url,$title,$params);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读