2017-02-21 1 views
1

생일 테이블이 있습니다. 생일 필드 : id | user_id | 생일 (유형 날짜 : YMD)의 URL $의 _GET에서 데이터는 [ '날짜'] 내가 쿼리데이터베이스에서 데이터 유형 날짜를 얻는 방법은 무엇입니까?

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

을 가지고 있지만 난 '형식으로 찾으려면 BirthdaysController에서'1991년 9월 10일 ' 입니다 1991 - 09 '. 도움을 주시면 대단히 감사하겠습니다. 도와주세요!

+0

정확히 무엇을 요구하는지 알려면 조금 어렵습니다. 직면하고있는 실제 기술적 인 문제에 대해 더 자세하게 시험해보십시오. ps, CakePHP에서 직접적으로 superglobals를 사용하지 말고 ** [요청 객체]의 해당 액세스 메소드를 사용하십시오 (https://book.cakephp.org/3.0/en/controllers/request-response.html#query-string- 매개 변수) **. – ndm

답변

0

나는 당신이하고 싶은 일은 주어진 달의 생일 날짜가있는 사람을 찾는 것일까 요?

우선 $this->request->query('date');과 같은 GET 매개 변수를 사용하고 $_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을 읽어야합니다.

관련 문제