我正在尝试检索当月的生日列表,但结果将如下所示:
1月1日 1月12日 1月2日 1月23日 1月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'],
]);
答案 0 :(得分:0)
如果你的dob列是varchar,则结果为true且是预期的 您需要将数据类型更改为datetime或timestamp aftar date你可以使用
$query->order(['dob' => 'ASC']);
$query->orderAsc('dob');
您可以使用日期函数而不是LIKE