如何在cakephp 3.2的限制中传递另一个参数

时间:2016-09-28 07:08:46

标签: php cakephp-3.0 cakephp-3.x cakephp-3.2

我正在使用内置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']).

最终,这是我的问题的结束。  谢谢你的任何建议将受到高度赞赏。

2 个答案:

答案 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]);