我正在使用内置ajax自定义分页的数据表。
这里我需要在限制函数中传递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 :(得分:1)
cakephp查询中有一个可以使用的偏移函数
所以你的查询变成如下
$ query = $ this-> Orders-> find(' all') - > where($ condition) - > offset($ requestData [' start' ]) - >限制($ requestData ['长度']) - >订单(['订单。'。$ id。''。$为了]);
这应该按要求工作,它与mysql查询中的start相同。
答案 1 :(得分:0)
在限制中,如果只传递一个参数,那么它支持两个参数,然后是限制参数,默认情况下偏移量为0
LIMIT 10 //returns first 10 records only
如果传递两个参数,则第一个是偏移,第二个是限制
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]);