Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP自动渲染器未停止默认视图_Php_Cakephp_Cakephp 1.3 - Fatal编程技术网

CakePHP自动渲染器未停止默认视图

CakePHP自动渲染器未停止默认视图,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我试图在控制器中运行一个方法,该方法在普通浏览器上呈现默认视图,但在请求来自移动设备时呈现移动视图 在app_controller.php中 function beforeFilter() { if ($this->RequestHandler->isMobile()) { $this->is_mobile = true; $this->set('is_mobile', true ); $this->auto

我试图在控制器中运行一个方法,该方法在普通浏览器上呈现默认视图,但在请求来自移动设备时呈现移动视图

在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跟踪下呈现外,没有任何异常


关于如何完全禁用默认视图进行渲染并仅显示手机,您有什么想法吗?

CakePHP会忽略“false”选项;您需要这样更改代码:

<?php

$this->autoRender = false;

?>


这将阻止视图渲染

如果要关闭特定视图的自动渲染,请添加

$this->autoRender = false;

在特定的方法中,而不是在应用程序控制器中,您是否能够共享屏幕截图?尝试autoLayout=false,它不起作用-仍然呈现“默认”视图,但出于任何原因从页面中删除css。在您的控制器中,您正在将
$this->autoRender
设置为
NULL
,而不是
false