我正在尝试在控制器中设置一个变量,以便我可以在视图文件中引用它
以下是来自同一操作/功能
的成功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');
但我仍然得到未定义的通知。
我做错了什么?
答案 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'));
。
希望得到这个帮助。