kimono
@kimono
Web developer

Как правильно прописать условия для фильтра ExistValidator в YII2?

Есть правило валидации.
[['content_id'], 'exist',
  'skipOnError'      => true,
  'targetClass'       => News::className(),
  'targetAttribute' => 'id',
  'filter'                 => [
    'is_active'              => true,
    'allow_comments' => true,
    // интересует это место:
    ['>=', 'created_at', new Expression('NOW() - INTERVAL 7 DAY')],
  ],
  'message' => 'Новость не найдена',
  'on' => [self::SCENARIO_DEFAULT, self::SCENARIO_SEND_COMMENT],
],

Не пойму как правильно использовать три атрибута (в данной ситуации идет ошибка
PHP Warning 'yii\base\ErrorException' with message 'strtoupper() expects parameter 1 to be string, array given'
).
  • Вопрос задан
  • 323 просмотра
Решения вопроса 1
vyachin
@vyachin
Ищу работу
первый вариант

'filter'=> function (ActiveQuery $query) {
$query->andWhere([]);
}

второй вариант
'filter' => [
'is_active' => true,
'allow_comments' => true,
'created_at >= NOW() - INTERVAL 7 DAY',
],
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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