在/ Template / Error /我修改了error400.ctp和eror500.ctp,以便在关闭调试时使用默认布局。
这很好用。但是如果控制器操作的代码中没有出现错误,但是在视图中(例如,由于查询仅在视图中需要时立即执行),则错误页面包含原始操作视图的一部分渲染,然后用于显示错误的布局和内容的html代码:
<form method="post" accept-charset="utf-8" action="/index">
<div class="box-normal">
<select>…</select>
<!-- the error occurs after the next </div>,
and after that the output of the error page
starts with <!DOCTYPE html> -->
</div><!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
这当然是无效的html,也让用户感到困惑。
有没有办法在渲染错误之前刷新输出缓冲区,以便丢弃已经渲染的视图的任何部分?