我的问题延伸了之前在CakePHP: Limit Fields associated with a model上发布的一个问题。我有效地使用了这个解决方案,通过这个调用限制了父表的返回字段
$data = $this->SOP10100->find('all',
array('fields' => $this->SOP10100->defaultFields));但是,此方法返回已筛选的父字段和未筛选的子字段。我有131个子字段,我只需要其中的7个。我在子表中有相同的defaultFields数组结构。如何修改此调用(或创建一个新调用),以返回同一数组中父模型和子模型的已过滤字段?
下面是父表的数组结构:
public $defaultFields = array(
'SOP10100.SOPNUMBE',
'SOP10100.INVODATE',
'SOP10100.DOCDATE',
'SOP10100.DOCAMNT',
'SOP10100.SUBTOTAL');非常感谢您的帮助。
发布于 2012-04-26 06:36:27
得分!哇,一天解决了两个大问题。在许多资源的帮助下,我终于找到了答案:
$this->InvoiceHeader->Behaviors->attach('Containable');
$data = $this->InvoiceHeader->find('all', array(
'fields' => $this->InvoiceHeader->defaultFields,
'contain' => array(
'InvoiceDetail' => array(
'fields' => $this->InvoiceDetail->defaultFields))
)
);就像我想要的那样返回数组数据:
array(
(int) 0 => array(
'InvoiceHeader' => array(
'SOPNUMBE' => 'SVC0202088 ',
'INVODATE' => '2012-04-17 00:00:00',
'DOCDATE' => '2012-04-17 00:00:00',
'DOCAMNT' => '.00000',
'SUBTOTAL' => '.00000'
),
'InvoiceDetail' => array(
(int) 0 => array(
'ITEMNMBR' => 'SERVICE ',
'QUANTITY' => '1.00000',
'UOFM' => 'EA ',
'UNITPRCE' => '.00000',
'TAXAMNT' => '.00000',
'CONTSTARTDTE' => '2012-04-17 00:00:00',
'CONTENDDTE' => '2012-04-30 00:00:00',
'SOPNUMBE' => 'SVC0202088 '
),https://stackoverflow.com/questions/10323310
复制相似问题