0

我一直在把头撞在墙上。我有一个属于模型购买的模型 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:

选择Skuid, Sku. purchase_id, Sku. item_id, Sku. upc, Sku. quantity_avail, Sku. per_unit_price_amt, Sku. do_not_delete, Sku. created, Sku. modified, (concat('SK',lpad( Sku. id,8,'0')))Sku__idFormattedsellble. skusAS SkuWHERE 1 = 1 ORDER BY Skuid描述

CakePHP 版本:2.4.4

4

1 回答 1

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'
                  )
             )
         )
     )
);
于 2014-02-06T00:26:18.353 回答