2017-01-06 2 views
0

Я пытаюсь сделать получить список дней рождения на текущий месяц, но результат будет выглядеть следующим образом:Cakephp3 Сортировка ASC не работает

1 январь 12 января 2 января январь 23 3 января

Как я мог бы переписать мой запрос, чтобы заставить его работать так, что они в порядке, вот я мой запрос:

$month = date("F"); 
    $clients = $this->Clients; 
    $query = $clients->find(); 

     if($this->Auth->user('role') !== 'admin'){ 
      $query->where(['user_id =' => $this->Auth->user('id')]); 
      $query->where(['dob LIKE' => '%'.$month.'%']); 

      $query->order(['dob' => 'ASC']); 
     } 



    $this->set([ 
    'clients'=>$this->paginate($query), 
    '_serialize'=>['clients'], 

    ]); 
+1

Несколько связанный с этим вопрос: Почему вы не хранить дату в соответствующей дате тип столбца? – ndm

ответ

0

если ваша колонка д.р. является VARCHAR выше результата верно и ожидаемого вам нужно изменить тип данных в дату или временной метки даты aftar вы можете использовать

$query->order(['dob' => 'ASC']); 
$query->orderAsc('dob'); 

и вы можете использовать функции даты вместо LIKE

+0

Спасибо, но я пытаюсь получить текущий месяц и заказать их – bstras21

+0

varchar column не очень хорош, и вы не можете сортировать в порядке – parsaya

Смежные вопросы