CakePHP,在控制器中设置值在.ctp文件中不可用

时间:2015-03-05 16:18:11

标签: cakephp

我正在尝试在控制器中设置一个变量,以便我可以在视图文件中引用它

以下是来自同一操作/功能

的成功set语句的示例
//users_controller.php, index() function
$this->set('bidBalance', $this->Membership->User->Point->balance($this->Auth->user('id'), true));

有了上述内容,在我的index.ctp文件中,我可以通过以下方式显示结果:

print($bidBalance);

所以我必须将一些其他数据返回到视图中,所以我执行以下操作:

$this->set('nextMembership', 
    $this->Membership->find('first', array('conditions' => 
        array('Membership.rank >' => $membership['Membership']['rank']), 
        'contain' => '', 'order' => array('Membership.rank' => 'asc'))));

当我尝试在我的视图文件中访问$ nextMembership时,我收到通知:

Notice (8): Undefined variable: nextMembership [APP/views/themed/users/index.ctp, line 138

问题是我分配给' nextMembership'在别处使用并成功返回数据,所以我不确定是什么问题。

另外,为了我的理智,我甚至尝试过

$this->set('nextMembership', 'hello world');

但我仍然得到未定义的通知。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

首先,如果您处于开发模式,我建议您将cakephp调试模式更改为2级。您可以通过将Configure::write('debug', 0);更改为{来在位于Config文件夹中的core.php文件上执行此操作{1}}。更改后,您可以使用debug($ nextMembership)而不是print()。它将为您提供更好的调试结果。

要确认您的查询是否正确,请尝试按以下格式分隔代码:

Configure::write('debug', 2);

在你的视图中,

将其放在文件的顶部:$nextMemberships = $this->Membership->find('first', array( 'conditions' => array('Membership.rank >' => $membership['Membership']['rank']), 'contain' => '', 'order' => array('Membership.rank' => 'asc'))); $this->set(compact('nextMemberships'));

希望得到这个帮助。