2017-02-21 30 views
1

У меня есть дни рождения. Дни рождения поля: id | user_id | день рождения (дата Тип: ГМД) Данные из URL $ _GET [ «дата»] является «1991-09-10» В BirthdaysController я есть запросКак получить данные типа даты из базы данных?

$arrayDate = $this->Birthday->find()->where(['birthday' => $_GET['date'] ])->all(); 

, но я хочу, чтобы найти по формату «1991- 09' . Любая помощь будет принята с благодарностью. Пожалуйста, помогите мне!

+0

Немного сложно рассказать, о чем именно вы просите, пожалуйста, постарайтесь уточнить фактическую техническую проблему, с которой вы сталкиваетесь. ps, не используйте суперклапаны непосредственно в CakePHP, используйте соответствующие методы доступа ** [объект запроса] (https://book.cakephp.org/3.0/en/controllers/request-response.html#query-string- параметры) **. – ndm

ответ

0

Я думаю, что вы хотите найти людей с датой рождения в течение месяца года?

Прежде всего, вы должны использовать параметры GET, такие как $this->request->query('date');, а не как это $_GET['date'].

Вы должны использовать между функцией, так, чтобы быть уверенным, что вы используете первый и последний день месяца, конвертировать дату, как это:

$startDate = $endDate = new \DateTime($this->request->query('date')); 
$startDate->modify('first day of this month'); 
$endDate->modify('last day of this month'); 

И тогда вы просто должны создать запрос, как этот

$arrayDate = $this->Birthday 
    ->find() 
    ->where(function($exp) { 
     return $exp->between('birthday', $startDate->format('Y-m-d'), $endDate->format('Y-m-d'), 'date'); 
    }); 

Они другие способы использования этого между условиями найти, вы должны прочитать this.