我的查询对每个SQL有效。我收到大约200个结果,并且可能有数千个结果,因此我需要分页。我确定我已经以非蛋糕的方式构建了子查询,但是我不知道如何在查询的选择部分内实现子查询。
环境:
非常感谢所有帮助。谢谢。
debug($select);
收益= = [(int)0 =>'Products.ItemCode',(int)1 =>'Products.ItemName',''03''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='03')中选择手,'''04''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='04')中选择手,',''05''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='05')中选择手,',''06''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='06')中选择手,',''07''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='07'的Select OnHand)',''08''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='08')中选择手,',''09''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='09'的Select OnHand)',''14''=>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='14')中选择OnHand'',” 15” =>'(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='15')中选择手]]
debug($conditions);
Yields => ['Products.validFor'=>'Y','Products.ItemCode LIKE'=>'TCP%']
$this->paginate = ['fields' => $select, 'conditions' => $conditions, 'order' => [$sort => $direction]];
$query = $this->Inventory->Products->find('all', $this->paginate);
debug($query);
收益= =>SELECT Products.ItemCode AS [Products__ItemCode],Products.ItemName AS [Products__ItemName],(从OITW WHERE ItemCode = Products.ItemCode AND WhsCode ='03'的OnHand选择)AS'03',(从OITW WHERE的ItemCode = Products.ItemCode和WhsCode ='04'的OnHand中选择)AS'04',(从OITW WHERE的ItemCode = Products.ItemCode和WhsCode ='05'的OnHand中选择)AS'05',(从OITW WHERE的ItemCode = Products.ItemCode AND WhsCode ='06'的OnHand中选择)AS'06',(从OITW WHERE的ItemCode = Products.ItemCode AND WhsCode ='07'的OnHand中选择)AS'07',(从OITW WHERE的ItemCode = Products.ItemCode AND WhsCode ='08'的OnHand中选择)AS'08',(从OITW WHERE的ItemCode = Products.ItemCode和WhsCode ='09'的OnHand中选择)AS'09',(从OITW WHERE的ItemCode = Products.ItemCode和WhsCode ='14'的OnHand中选择)AS'14',(从OITW WHERE的ItemCode = Products.ItemCode和WhsCode ='15'的OnHand中选择)AS'15'从OITM产品所在的位置(Products.validFor =:c0 AND Products.ItemCode类似于:c1)ORDER BY Products.ItemName ASC
$inventory = $this->paginate($query, ['limit' => 50]);
debug($inventory);
Yields =>“传递给Cake \ ORM \ Entity :: __ construct()的参数1必须为数组类型,给定布尔值,在C:\ inetpub \ wwwroot \ vendor \ cakephp \ cakephp \ src \ ORM \ ResultSet中调用.php行602“
您可以尝试
$inventory = $this->paginate($query->all(), ['limit' => 50]);