CI路由$ this-> agent-> is_mobile()

时间:2014-09-23 13:05:38

标签: php codeigniter routes

CI路由文件中是否有任何方法可以查看视图是否正在使用移动设备?

如果是这样,将它们旋转到另一个页面?

我有两套控制器,一套用于移动,另一套用于桌面,但我希望网址始终保持不变。

我已尝试将以下代码添加到路线配置文件中,但我收到错误...

我是否认为这完全错了?

 $this->load->library('user_agent');

if ($this->agent->is_browser())
{
      $route['default_controller'] = "index";
} elseif ($this->agent->is_mobile())
{
      $route['default_controller'] = "m/index";
}

我得到的错误是Undefined属性:CI_Router :: $ load

1 个答案:

答案 0 :(得分:1)

从检查CI系统文件开始,似乎在Router类之后加载了Loader类,因此$ this-> load还没有存在。

查看CI Hooks:https://ellislab.com/codeigniter/user-guide/general/hooks.html

此外,您可以尝试使用head.js(http://headjs.com/)并为响应式设计定义屏幕宽度。它使您能够构建网站并更改CSS以根据浏览器的宽度更改页面。除非您因功能而瞄准移动/台式机,否则屏幕尺寸是我们关心它们的常见原因,对吧?所以,如果它是屏幕尺寸,我认为head.js系统是要走的路。那么你只需要担心服务器端的一个代码库。