gpt4 book ai didi

php - CodeIgniter 中的当前 URI 段

转载 作者:可可西里 更新时间:2023-10-31 23:10:19 24 4
gpt4 key购买 nike

在 CodeIgniter View 中检查当前 URI 段的最佳方法是什么?我想做的是使用当前的 URI 段 [即$this->uri->segment(1)] 以便在导航栏上突出显示当前页面。

我想到的最好的办法就是做

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

在我的每个 Controller 中,然后在 header.php 文件中,我检查 $current_uri 变量以确定应突出显示导航的哪一部分。如您所知,这是一种非常乏味的方法,但我不知道更好的方法。

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

最佳答案

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

然后该函数使用 anchor 函数返回(该函数所做的只是确定链接是否需要“事件”类。

编辑:

我只是将此代码放在名为“MY_url_helper.php”的文件中。这样,当加载 url 助手时(我实际上自动加载了那个,因为我几乎所有的 View 都使用它。)这也只是一些快速代码,很确定它会起作用。基本上它采用与 anchor() 函数相同的参数,还有 $key 变量。如果键和 url 匹配,它会将“active”类附加到 anchor 标记。

<?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);
}
}

关于php - CodeIgniter 中的当前 URI 段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com