一、ThinkPHP导航栏:判定当前页面
ThinkPHP是一个PHP开源框架,其具备功能强大、学习简单、易于扩展的特点。在网站开发中,一个好用的导航栏是必不可少的,而如何判定当前页面,高亮对应的导航栏选项,是实现一个好用导航栏的关键。
二、根据URL判定当前页面
在ThinkPHP中,可以使用当前URL与导航栏的URL进行对比,如果相同,那么该导航栏选项即为当前页面。
1.获取当前URL
使用下面的代码可以获取当前URL:
$url = $_SERVER['REQUEST_URI'];
这里的```$_SERVER['REQUEST_URI']```就是取得当前页面URI,URI即为当前页面在服务器上的名称(不包括域名和参数),例如,当前页面为http://www.example.com/index.php?id=3,那么URI为/index.php。
2.获取导航栏URL
一个基本的导航栏通常由多个链接组成,使用下面的代码可以在模板文件中输出每一个导航栏选项的URL:
```首页```
其中,```U('Index/index')```是ThinkPHP内置的URL路由,它会生成URL链接:http://www.example.com/index.php/Index/index,其中Index代表控制器名称,index代表控制器方法。
3.判定当前页面
获取到当前URL和导航栏URL之后,使用循环遍历的方式来判断并高亮当前页面的导航栏选项:
上述代码中,循环遍历了所有的导航栏选项,并使用```eq```函数来进行判断。如果当前URL与导航栏选项的URL相同,则使用```class="active"```来高亮该导航栏选项,使其显示为当前页面。
但是,如果在URL中传递了参数,那么上述判断方法会出现问题,因为参数不会被包含在URI中。这时候,可以使用```$_GET```来获取参数:
$url = $_SERVER['SCRIPT_NAME'] . '?' . http_build_query($_GET);
再将上述判断语句中的```$url```修改为新的URL即可。
三、总结
在ThinkPHP中,判定当前页面的方法比较简单,只需要获取当前URL和导航栏URL,然后进行比对即可。但要注意在使用```eq```函数进行比对时,可能会出现参数不包含在URI中的情况,这时候需要使用```$_GET```来获取参数。