0

我的模型1有很多模型2,我需要在模型2上做条件语句,换句话说:

 $result = $this->Model1->find("all",array("conditions" => array("Model2"."field" => $outsideValue)));

然而,我得到了一个未知的列 Model2.field,它看起来是由于 Model1 不包括 Model2 作为连接。我如何做 cakePHP 与 hasMany 的连接?

4

3 回答 3

2

您可以使用临时连接可链接行为来获取连接。

于 2012-09-03T19:43:41.233 回答
0

尝试:

$result= $this->Model1->find('all',array('recursive'=>1,"conditions" => array("Model2"."field" => $outsideValue)));

或者:

$result= $this->Model1->find('all',array("contains" => array("Model2"=>array('conditions'=>array("field" => $outsideValue)))) ;

第一个将为您提供所有模型 1 元素,这些元素链接到模型 2 以验证条件。

第二个将为您提供所有模型 1 元素,只有关联的模型 2 验证条件。

于 2012-09-03T19:38:07.213 回答
0

试试这个:

$this->Model1->bindModel(array(
    'hasMany' => array(
        'Model2' => array('conditions'=>array('Model2.field'=>$outsidevalue))
)));
$data = $this->Model1->find('all');
于 2012-09-04T04:49:51.207 回答