2016-09-28 88 views
0

我正在使用数据表内置ajax自定义分页。如何通过cakephp限制的另一个参数3.2

这里我需要在限制函数中传递2个参数。

我需要一些帮助才能使它成为可能。我正在使用cakephp 3.2。

以下是我的代码。

$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." "; 


This code is in core php , 

I want to convert it into cakephp . 

Below is what i have tried so far. 

$order=$requestData['order'][0]['dir']; //descending ya ascending 
     $id=$columns[$requestData['order'][0]['column']];///order by which column 


$query= $this->Orders->find('all')->where($condition)->limit($requestData['length'])->order(['Orders.'. $id.' '.$order]); 

How can i write this code LIMIT ".$requestData['start']." ,".$requestData['length']." "; 

Using cakephp , 
In limit how to give both the limit as well as the start parameter($requestData['start']). 

最后,这是我的问题的结束。 谢谢任何​​建议将不胜感激。

回答

0

在限制,它支持两个参数如果传递只有一个那么它是极限参数,和偏移默认

LIMIT 10 //returns first 10 records only 

是0如果传递两个参数然后第一偏移和第二是限制

LIMIT 50, 10 //returns 10 records from 51st record 

在CakePHP的查询路过偏移,您可以使用offset($start)方法或page($page_number)方法检查DOC

你的代码应该是

$query= $this->Orders->find('all')->where($condition)->limit($requestData['length'])->offset($requestData['start'])->order(['Orders.'. $id.' '.$order]); 
+0

哇,它真的工作。 非常感谢,您节省了我的时间。 :) :);) – sradha

+1

WOW ...严重吗? ;) –

+0

是的,我已经在page()中完成了它,但是我需要偏移量。 我了解它,并再次感谢你。 ;););):) – sradha

1

存在CakePHP的查询偏移功能,您可以使用

所以您的查询变得如下

$查询= $这个 - >订单 - >找到(“全部”) - >在哪里( $ condition) - > offset($ requestData ['start']) - > limit($ requestData ['length']) - > order(['Orders。'。$ id。''。$ order]);

这应该按照要求工作,它与mysql查询中的启动相同。