0

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

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

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

谢谢你。

4

2 回答 2

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

于 2012-11-02T13:22:57.423 回答
0

试试 echo $tester;默认情况下,它应该可用。

如果请求是发布的,您将在 $this->data 中有数据。

于 2012-11-02T12:37:08.287 回答