我是对cakePHP编程的新手。我需要加入四个表,但我开始加入这四个表中的两个。当我尝试加入时,我得到错误:
未找到列:1054未知列' s.state_code'在'字段列表'
我尝试过使用别名,如前所示。我也尝试过使用表名。 在我读过这个问题的可能解决方案中,我已经尝试了大部分解决方案。例如,缓存不是问题,我已经在更新模型数据库后删除了这些文件,并且我一直收到同样的错误。
这是officesController上的代码,这里是我收到错误的地方:
public function view(){
$this->loadModel('States');
$options['joins'] = array(
array('table' => 'states',
'alias' => 's',
'type' => 'inner',
'conditions' => array(
'offices.state_code = s.state_code'
)
)
);
$options['fields'] = array('offices.state_code', 'offices.office_name', 's.state_name');
$offices = $this->Offices->find('all', $options);
$this->set('offices',$offices);
}
我还尝试了以下代码,这个代码的问题是它只从Offices表中检索数据,而不是从State检索数据:
$this->loadModel('States');
$offices = $this->Offices->find('all',
array('joins' => array(
array('table' => 'states',
'alias' => 's',
'type' => 'left',
'foreignKey' => true,
'conditions' => array(
'offices.state_code = s.state_code')
)
)
)
);
$this->set('offices', $offices);
此外,使用上面的代码,我尝试使用false和true值的foreignkey,结果完全相同。 另外,我不确定如何从两个表中选择特定字段。 任何帮助将非常感激。感谢。
办公室用SQL表:
CREATE TABLE offices(
office_id VARCHAR(10) NOT NULL,
office_name VARCHAR(128),
address VARCHAR(128),
state_code VARCHAR (5),
PRIMARY KEY(office_code),
FOREIGN KEY(state_code) REFERENCES states(state_code)
);
状态表的SQL:
CREATE TABLE states(
state_code VARCHAR(5) NOT NULL,
state_name VARCHAR(50),
PRIMARY KEY (state_code)
);