Cakephp loadModel bindmodel不能正常工作

时间:2011-11-21 21:05:00

标签: php cakephp

我有hasMany通过表聊天模型的聊天表,我在用户控制器中使用loadModel加载聊天模型然后在查询下运行bindModel与Chat.user_id和User.id:

$this->loadModel('Chat');

$this->Chat->bindModel(array(
  'belongsTo' => array(
    'User' => array(
      'foreignKey' => false,
      'conditions' => array('Chat.user_id = User.id')
    )
  )
));

$lastChat = $this->Chat->find('all', array(
  'conditions' => array(
    'Chat.receiver_id' => $user_id['User']['id']
  ),
  'order' => array('Chat.id DESC'),
  'fields' => array(
    'Chat.id',
    'Chat.chat',
    'Chat.user_id',
    'Chat.receiver_id',
    'Chat.read',    
    'Chat.created'
  ),
  'group' => array('Chat.user_id')
));

我想将这些表连接在一起,但这似乎不能以Cake方式工作,我尝试使用普通的SQL查询,它运行正常。

这里可能有什么问题?

1 个答案:

答案 0 :(得分:0)

您是否尝试在查找之前设置递归属性?例如:

$this->Chat->recursive = 3;

您可能需要在$this->Chat->bindModel之后设置此项,但我不确定这是否会有所作为。如果您的查找查询在循环中运行,您还需要在每次查找之前重新绑定User模型...