我有两张桌子
一张囚桌和一张典狱桌。一座监狱可以安排多名监管员为监狱工作。典狱长记录有开始日期和结束日期字段,这是他们将为监狱工作的时间范围。
我已经建立了一个协会,它是监狱hasMany典狱长。典狱表有一个外键字段prison_id。
如果我执行$this->Warden->find('all');
我会得到所有的监狱,以及他们过去和将来的监狱长。
我只想让监狱长在特定的日期为监狱工作。
我正在尝试做一些像这样的事情
$searchfilter = array(
'Warden.startdate <=' => $date,
'Warden.enddate >=' => $date,
);
return $this->Prison->find('all', array('conditions' => $searchfilter));但这会导致未知场错误。
发布于 2014-04-15 00:29:45
你的发现是在Prison模型上,但你的条件是在Warden模型上,这就是为什么它会给出未知字段错误的原因。如果您只需执行以下操作,该查询将会起作用:
return $this->Prison->Warden->find('all', array('conditions' => $searchfilter));如果你想要一个特定的监狱,如果你知道它的id,你可以简单地添加到你的$searchFilter
'Warden.prison_id' => $id发布于 2014-04-15 03:10:38
问题是你是在盲目地尝试...Warden.prison_id不在您的监狱表中..为了简单起见,使用可包含的行为...
Prison.php
class Prison extends AppModel{
public $hasMany = array('Warden');
public $actsAs = array('Containable');// adding behaviors to model
public function getPrison(){
$searchfilter = array(
'Warden.startdate <=' => $date,
'Warden.enddate >=' => $date,
);
$data = $this->find('all', array(
'contain' => array(
'Warden' => array(
'conditions' => $searchfilter
)
)
));
return $data;
}
}https://stackoverflow.com/questions/23065041
复制相似问题