嘿伙计们,现在已经有这个问题一段时间了,而且对于我的生活来说似乎无法追踪任何有用的东西。
我正在尝试,一旦用户登录应用程序(使用内置的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)。
你可以想象,这已经相当令人沮丧,我很乐意为你提供任何帮助。
谢谢, 本
答案 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>