CakePHP默认布局,无法将值传递给default.ctp

时间:2012-11-02 07:28:11

标签: cakephp cakephp-2.0

我有一个页面网站,在主页上(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);确保我有测试者值,但它总是空的。

这是一种正确的方法,如何在一个页面设计中实现多个控制器?

另一个问题是我可以检查的地方/功能是否是当前的请求,我想检查每个请求是什么?

谢谢。

2 个答案:

答案 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中的数据。