我有三种模式:公司,办公室,CompanyPersonTask。公司模型有很多Office,并且有许多CompanyPersonTask。
那么,为什么这段代码:
public function getCompaniesByRegion($region){
$options['conditions'] = array("UPPER(Office.region) LIKE UPPER('".$region."%')");
return $this->find('all', $options);
}
导致以下错误?
“where子句”中的“未知列'Office.region'”
region
表中<{1}}列 。
答案 0 :(得分:1)
好像您已在Company
与Office and CompanyPersonTask
之间指定了正确的关联。即Company hasMany Office
和Company hasMany CompanyPersonTask
。
然后你可以把它写成:
在您的公司模型中写道:
public $ actAs = array('Containable');
你的方法应该是:
class AppController extends Controller
{
public $uses = array('Company', 'Office', 'CompanyPersonTask');
protected function _getCompaniesByRegion($region){
return $this->Company->find('all', array('contain' =>
array('Office' => array('conditions' => array("UPPER(Office.region) LIKE " => "UPPER('".$region."%')")))
)
);
}
}
您可以使用$this->_getCompaniesByRegion($region_val);