Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP连接模型及其自身的关系_Php_Cakephp_Cakephp 2.x - Fatal编程技术网

CakePHP连接模型及其自身的关系

CakePHP连接模型及其自身的关系,php,cakephp,cakephp-2.x,Php,Cakephp,Cakephp 2.x,在Shop车型中,我有: public $belongsTo = array( 'Company' => array() ); ModelCompany在其模型类中定义了自己的关系。执行以下操作时,如何提取公司关系: $this->Shop->find('all', array( 'conditions' => array( 'Shop.loyaltycard' => 0,

Shop
车型中,我有:

public $belongsTo = array(
    'Company' => array()
);
Model
Company
在其模型类中定义了自己的关系。执行以下操作时,如何提取
公司关系

$this->Shop->find('all',
       array(
           'conditions' => array(
               'Shop.loyaltycard' => 0,
            )
       )
);

如果正确声明了关系,
find()
将自动获取关联模型的第一级,前提是您没有更改递归的默认级别(即1)

如果失败,请尝试以下操作:

$this->Shop->recursive=1;
$this->Shop->find('all',array(
    'conditions' => array(
        'Shop.loyaltycard' => 0,
    )
));
public $belongsTo = array(
    'Company'
);
更多关于模型属性的信息

另一个选项是加载Containable行为,这将允许您筛选希望获取的关系

$this->Shop->Behaviors->load('Containable'); //or make your model act as Containable 
$this->Shop->contain('Company');
$this->Shop->find('all',array(
    'conditions' => array(
        'Shop.loyaltycard' => 0,
    )
));
更多关于

此外,请将您的关系声明修改为以下内容:

$this->Shop->recursive=1;
$this->Shop->find('all',array(
    'conditions' => array(
        'Shop.loyaltycard' => 0,
    )
));
public $belongsTo = array(
    'Company'
);

不确定空数组如何影响您的关系,但它可能会导致关系失败。请注意,如果您不想查找所有相关型号,而只想添加一家公司,则仅当您遵循此操作时,此操作才有效。

$actsAs=array('Containable')
在您的店铺模型中,然后按如下方式进行搜索:

$this->Shop->find('all',array(
    'conditions' => array(
        'Shop.loyaltycard' => 0,
    ),'contain' => array(
         'Company'
));
请参阅cakephp containable