Cakephp包含根本不起作用

时间:2014-02-05 23:15:15

标签: cakephp containable

我一直在墙上敲我的头。我有一个模型Sku属于模型购买。我的AppModel有$actAs=array('Containable') and $recursive=-1

在SkuController内部,当我$this->Sku->find('all', array('contain' => 'Purchase'));时,我没有购买。我在这里和互联网上的其他地方搜索过许多旧问题,但似乎无法解决这个问题。要检查是否正在加载Containable行为,我在lib \ Cake \ Model \ Behavior中编辑了ContainableBehavior.php,使其成为无效的php文件,但没有产生任何错误。真是太糟糕了!!

以下是调试中的SQL:

  

选择SkuidSkupurchase_idSkuitem_idSku。{{1} },   upcSkuquantity_availSku,   per_unit_price_amtSkudo_not_deleteSkucreatedSku,   (concat('SK',lpad(modifiedSku,8,'0')))AS id FROM   Sku__idFormattedsellble AS skus WHERE 1 = 1 ORDER BY SkuSku desc

CakePHP ver:2.4.4

1 个答案:

答案 0 :(得分:1)

不确定版本之间是否有所不同,但我总是在数组中指定包含,这对我来说很合适。

$this->Sku->find('all', array('contain' => array('Purchase')));

或者仅映射您想要的字段或条件:

$this->Sku->find('all',
     array('contain' => array(
         'Purchase' => array(
             'fields' => Purchase.name
             'conditions' => array(
                  Purchase.name = 'somename'
                  )
             )
         )
     )
);