我有一个静态页面,我想要服务,所以我在/ views / pages /目录中创建了一个.ctp。问题是它使用了我不想使用的默认布局。我尝试制作自己的pages_controller并传递$ layout var,但这不起作用。必须有一种方法告诉/ pages /使用另一个layout.ctp。否?
答案 0 :(得分:1)
我遇到了类似的问题,以为我会报告我的解决方案以防其他人面临同样的问题。
我没有使用网页,但有一个控制器“成员”:
<?php
class MembersController extends AppController {
var $name = 'Members';
var $helpers = array('Html','Javascript','Form','Time');
var $uses = array();
function index() {
// Works, will load the ajax.ctp layout
// http://localhost/members/index
$this->layout = 'ajax';
}
function signup() {
// Does not work, loads the default.ctp layout
//http://localhost/members/signup
$this->layout = 'ajax';
}
}
?>
函数index()正确加载了ajax布局,但是signup()保持加载默认值。 原来错误是我没有查看/ signup.ctp 。一旦我添加它加载了正确的布局。是一个恍惚的错误,但让我咆哮错误的树,因为标志指向布局问题而不是视图问题。
答案 1 :(得分:0)
要检查的东西
答案 2 :(得分:0)
public function __construct($request = null, $response = null) {
parent::__construct($request, $response);
$this->constructClasses();
$this->Components->trigger('initialize', array(&$this));
$this->_set(array('cacheAction' => false, 'viewPath' => 'Errors'));
$this->layout='student';
}
答案 3 :(得分:0)
我遇到了同样的问题,所有错误都是误导性的。 我的问题最终是我试图使用没有支持表/模型的控制器,所以我试图在控制器的$ name成员变量中重用其他名称,因为否则会说模型没有'存在。 简而言之,请确保您的控制器名称具有相同命名约定的支持模型对象。