【问题标题】:CakePHP JOIN not workingCakePHP JOIN 不起作用
【发布时间】:2015-05-05 08:42:33
【问题描述】:

我是 cakephp 新手,我搜索了很多,但找不到解决方案。我的查询没有返回任何错误,但它没有将区域表与 disposeTemp 表连接起来。

public function disposePreview(){

$this->loadModel('DisposeTemp');
$joins = array(
    array(
        'table' => 'zones',                                                                                
        'alias' => 'Zone',                                                                                
        'type' => 'inner',                                                                                                                                                                
        'conditions' => array('DisposeTemp.zone = Zone.id')
    )
);
$options = array(
    'conditions' => array('DisposeTemp.is_delete' => 0,'DisposeTemp.status'=>2),
    'order' => array('Item.item_category_id' => 'asc'),
    'joins' => $joins
);                                         
$getDT = $this->DisposeTemp->find('all', $options);
debug($getDT);
exit;
}

【问题讨论】:

  • 您是否在配置文件中启用了调试?
  • 还要指定你使用的 cakephp 版本。
  • 是的,调试已启用。 CakePHP 2.6.2 版
  • 使用“pr($this->DisposeTemp->getDataSource()->getLog());”查看原始 sql。你看到了什么?
  • 我认为。如果您想查看来自 Zone 的数据。您必须在 $options 中定义 fields => array('Zone.*')

标签: php cakephp join


【解决方案1】:

设置外键为 false ,因为您在 DisposeTemp 表中没有正确的外键命名约定,它应该是 zone_id 以自动形成关系。

现在在你的情况下使用。

$joins = array(
    array(
        'table' => 'zones',                                                                                
        'alias' => 'Zone',                                                                                
        'type' => 'inner',       
        'foreignKey' => FALSE,                                                                                                                                                         
        'conditions' => array('DisposeTemp.zone = Zone.id')
    )
);

【讨论】:

  • 我之前使用过 'foreignKey' => FALSE 但仍然无法正常工作。后来我使用了 bindModel 方法,它对我有用。不过还是谢谢你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多