【发布时间】:2013-03-27 15:52:38
【问题描述】:
我正在尝试在控制器中运行一个方法,该方法在普通浏览器上呈现默认视图,但在请求来自移动设备时呈现移动视图。
在 app_controller.php 中
function beforeFilter() {
if ($this->RequestHandler->isMobile()) {
$this->is_mobile = true;
$this->set('is_mobile', true );
$this->autoRender = false;
}
}
在控制器中:
function home(){
...bunch of data grabbing stuff...
if ($this->is_mobile){
$this->autoRender = NULL;
$this->layout = 'empty';
$this->render('/mobile/home');
} else {
$this->layout = 'default';
}
}
当我在浏览器上点击它(用户代理切换到移动设备)时,它会呈现正确的移动/家庭视图文件,但它也会在下面呈现正常的非移动视图文件。打开调试,没有什么异常,除了第二个,“正常”视图文件正在从移动视图的 mysql 跟踪下方呈现。
关于如何完全禁用默认视图的渲染和仅显示移动设备的任何想法?
【问题讨论】:
-
你能分享截图吗?
-
试试 autoLayout = false
-
这不起作用 - 仍然呈现“默认”视图,但出于某种原因从页面中删除了 css。
-
在您的控制器中,您将
$this->autoRender设置为NULL,而不是false?
标签: php cakephp cakephp-1.3