【发布时间】:2014-02-06 09:20:21
【问题描述】:
我一直在用头撞墙。我有一个属于模型购买的模型 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:
选择
Sku.id,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'))) ASSku__idFormattedFROMsellble.skusASSkuWHERE 1 = 1 ORDER BYSku.iddesc
CakePHP 版本:2.4.4
【问题讨论】:
-
Sku 模型是否与购买关联?
-
您使用的是
actAs还是正确的actsAs变量?您的变量分配是否公开,即public $actsAs = array('Containable');?如果您删除递归设置,购买数据是否会返回到您的查找中(只是为了检查关联)?如果您创建模型的反射,它是否在 actAs 变量中携带包含“可包含”的数组?
标签: cakephp containable