我有一个页面网站,在主页上(Layout / default.ctp)我有2个表单,订阅和联系表单,通过联系人控制器进行控制。使用$ this-> set('some_val','test');我可以从AppController设置值,但不能从联系人控制器设置值,如何设置来自联系人控制器的值在default.ctp中可用,除了会话?
public function beforeFilter() {
parent::beforeFilter();
//pr('beforeFilter'); // i was testing is this happening or not
//exit();
$tester = 'test';
$this->set(compact('tester'));
}
并在default.ctp中我只是pr($ this-> viewVars);确保我有测试者值,但它总是空的。
这是一种正确的方法,如何在一个页面设计中实现多个控制器?
另一个问题是我可以检查的地方/功能是否是当前的请求,我想检查每个请求是什么?
谢谢。
答案 0 :(得分:1)
不确定我是否理解正确,但听起来您可能需要多种布局:
class CarsController extends AppController
{
public function index($page)
{
/* Your logic */
if ( $page == 'other' ) {
$this->render('view', 'layout');
} else {
$this->render('view-other', 'layout-other');
}
}
}
有关详细信息,我建议您查看:http://api20.cakephp.org/class/controller#method-Controllerrender
答案 1 :(得分:0)
尝试使用echo $ tester;在您的默认值中,它应该可用。
如果请求是发布的,那么您将拥有$ this-> data中的数据。