我的控制器中有一个处理通用页面请求的方法,用于我的公共页面。当我无法匹配URL中的内容以及我所知道的静态内容页面时,我想抛出404。
所以我这样做:
$opts = array(
'name' => 'Some message',
'code' => 404,
'message' => 'Your message here',
'base' => $this->base
);
$this->layout = 'blank';
$this->cakeError('error', array($opts));
问题是我在404请求中收到此错误:
注意(8):未定义的变量:javascript [APP \ views \ layouts \ default.ctp,第10行]
“$ this-> layout ='blank';”是我尝试重定向到一个空白的布局文件,不包括任何CSS,JS等。但它完全忽略了这一点并加载了包含JS的默认模板。我猜测加载404页面的错误例程无法访问这些方法,这是错误的来源。
但我无法弄清楚如何处理这个错误。
答案 0 :(得分:2)
首先,您的代码中存在一个小错误。你对cakeError()的第二个参数已经是一个数组。它应该是:
$this->cakeError('error', $opts);
其次,你可以设置
$this->layout = false;
如果你想要一个空白的布局。