CakePHP查找每次都返回相同的值

时间:2010-12-29 06:05:14

标签: php mysql cakephp

嘿伙计们,现在已经有这个问题一段时间了,而且对于我的生活来说似乎无法追踪任何有用的东西。

我正在尝试,一旦用户登录应用程序(使用内置的Auth组件),请使用school_id字段查找与其关联的学校的名称(并在标题中显示此名称) (视图)。我还想到,我将需要在其他行动中调出其他各种学校信息。

我尝试了以下两种方法,但似乎都没有效果。无论我是School-> find()基于用户的“school_id”还是我手动包含的数字。它只是每次返回同一所学校的信息(ID为1的学校)。

这是我尝试过的:

$this->set('school_name', $this->School->find('first', array('conditions' => array('School.id' == 2))));

$this->set('school_info', $this->School->find('first', array('conditions' => array('School.id' == $this->Auth->User('school_id')))));

$this->set('school_info', $this->School->find($this->Auth->User('school_id');

再一次,代码没有返回任何问题也没问题。它每次都返回同一所学校(ID = 1)。

你可以想象,这已经相当令人沮丧,我很乐意为你提供任何帮助。

谢谢, 本

1 个答案:

答案 0 :(得分:2)

您使用的是==符号,而不是=>

应该是:

$this->School->find('first', array('conditions' => array('School.id' => 2))));

请记住:==是一个条件运算符。 =>是用于创建数组键值对的箭头符号。

一个简短的方法是:

$this->School->findById($this->Auth->user('school_id'));

如果您要提供id,请将其提供给findById,而不是提供无所不包的find方法。也就是说,你应该注意看到你正在使用正确的操作员。 :)

快速注意:'School.id'== 2评估为false,而array(false)是一个包含一个元素false的数组,这就是您没有收到任何错误的原因。< / p>