@AlexSer

Yii2 как вставить параметры в функцию?

Все таки наешл как отфильтровать. Вот код
$query=Napravlenie::find()->joinWith(['pacients' => function ($q) {
                         $q->where('pacients.dr="1990-02-25"');
                     }]);

Мне нужно отфильтровать всех кому есть 18 лет.
$yearOfBirth = 18;
                     $date1 = date((date('Y') - $yearOfBirth - 1) . '-m-d');
                     $date2 = date((date('Y') - $yearOfBirth) . '-m-d');
                     $query=Napravlenie::find()->joinWith(['pacients' => function ($q, $date1, $date2) {
                         $q->where("pacients.dr BETWEEN $date1 AND $date2");
                     }]);

Функция начинает ругаться на параметры $date1, $date2. Подскажите как правильно это сделать?
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
EnChikiben
@EnChikiben
$yearOfBirth = 18;
$date1 = date((date('Y') - $yearOfBirth - 1) . '-m-d');
$date2 = date((date('Y') - $yearOfBirth) . '-m-d');
$query=Napravlenie::find()->joinWith(['pacients' => function ($q) use ( $date1, $date2) {
   $q->where("pacients.dr BETWEEN :d1 AND :d2",["d1"=>$date1,"d2"=>$date2]);
}]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы