我有两个不同的移动和桌面网站(由于它们之间存在很大的差异,我无法使其响应,因此无法加载不同的视图),并且它们的网址相同。我已经在Codeigniter中拥有移动网站,我需要将其用于桌面版。
他们是否可以在路由器中加载不同的控制器 基于useragent,或任何其他方式来解决这个问题。
我已尝试在路由规则之前加载useragent库,但我收到错误。
这是我在routes.php中试过的:
$this->load->library('user_agent');
$this->load->helper('url');
if ($this->agent->is_mobile())
{
$device = "";
}
else
{
$device = "desktop/";
}
错误:
遇到PHP错误 严重性:注意 消息:未定义属性:CI_Router :: $ load 文件名:config / routes.php 行号:52 回溯: 文件:/var/www/html/abc.com/application/config/routes.php 行:52 功能:_error_handler 文件:/var/www/html/buzz.in/index.php 行:315 功能:require_once
答案 0 :(得分:1)
正如你可以使用的那样是使用重映射函数,或使用baseController,但我会选择CodeIgniter钩子。
接下来我想知道为什么移动设备会以不同于桌面的方式处理数据?根据我的经验,我只更改视图,而不是功能,但无论如何检查
答案 1 :(得分:0)
您可以在检查用户代理后使用_remap()
功能,并且在两种情况下(移动/桌面)都会保持URL相同。
或者您可以按照@ kishor10d ...
的说明在BaseController中查看它