【发布时间】:2012-10-22 20:48:00
【问题描述】:
我有一个页面网站,在主页上(布局/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);确保我有 tester 值,但它始终为空。
这是如何在一个页面设计中实现多个控制器的正确方法吗?
另一个问题是有一个地方/功能可以检查是否是当前请求帖子,我想检查每个请求是什么?
谢谢。
【问题讨论】:
-
请粘贴更多代码或正确解释您想要什么
-
@Learner 除了Contact控制器中的2个相关函数外,没有更多代码,您有以上几个问题。
-
您在滥用框架。您只需将主页设为
/contact/:action,然后您只需编辑表单操作即可将其发布到每个控制器。 -
为什么
CakeSession不可能?你能详细说明一下吗?因为不明白为什么要在Default.ctp中做任何其他事情,然后进行会话控制以进行身份验证。 -
如果不是绝对必要,也不要使用 beforeFilter() - 将数据设置到控制器 beforeRender() 是正确的方法,因为它在可能的重定向之后触发并且布局实际上是呈现并需要您传递的内容。
标签: cakephp cakephp-2.0