Model cakephp 3 beta中的中间条件

Model cakephp 3 beta中的中间条件,model,between,cakephp-3.0,Model,Between,Cakephp 3.0,CakePHP3中此代码的等效代码是什么 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; 我试试这个 $condition["Advertisements.created BETWEEN ? AND ?"] = [1418874212 , 1418889212]; 但是它不起作用您可以使用以下两种方法之一 $Query = $Table

CakePHP3中此代码的等效代码是什么

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
我试试这个

$condition["Advertisements.created BETWEEN ? AND ?"] = [1418874212 , 1418889212];

但是它不起作用

您可以使用以下两种方法之一

            $Query = $Table
            ->find('all')
            ->where([
                'date BETWEEN :start_date AND :end_date'   
            ])

            ->bind(':start_date ',$s_date)
            ->bind(':end_date',$e_days); 

            $Query->hydrate(false);
            $result = $Query->toArray();
方法1:

$start_date = '2015-11-01 00:00:00';
$end_date = '2015-11-01 23:59:59';
$query = $this->Advertisements->find('all')
         ->where(function ($exp, $q) use($start_date,$end_date) {
             return $exp->between('created', $start_date, $end_date);
         });
$result = $query->toArray();
$start_date = '2015-11-01 00:00:00';
$end_date = '2015-11-01 23:59:59';
$query = $this->Advertisements->find('all')
         ->where([
            'created BETWEEN :start AND :end'
         ])
         ->bind(':start', new \DateTime($start_date), 'datetime')
         ->bind(':end',   new \DateTime($end_date), 'datetime');
$result = $query->toArray();
方法2:

$start_date = '2015-11-01 00:00:00';
$end_date = '2015-11-01 23:59:59';
$query = $this->Advertisements->find('all')
         ->where(function ($exp, $q) use($start_date,$end_date) {
             return $exp->between('created', $start_date, $end_date);
         });
$result = $query->toArray();
$start_date = '2015-11-01 00:00:00';
$end_date = '2015-11-01 23:59:59';
$query = $this->Advertisements->find('all')
         ->where([
            'created BETWEEN :start AND :end'
         ])
         ->bind(':start', new \DateTime($start_date), 'datetime')
         ->bind(':end',   new \DateTime($end_date), 'datetime');
$result = $query->toArray();

您能否提供一个简短的描述?例如,如果您想找到两个日期之间的所有日期,即开始日期和结束日期,那么您的条件应该如下:'conditions'=>['date between start\u date and end\u date'=>['2015-10-07','2015-10-20']]。。。。。之后,可以使用bind()方法绑定数据,因为直接传递用户输入的列名是不安全的。。