ptand, когда вернутся ошибки - посмотрите исходный код формы, возможно просто скрыто поле для вывода ошибки. Вы же применяете виджет, возможно css виджета скрывает ошибку.
поля 'arrvar1_id' = user_id ptand, опять же, из-за подобного именования переменных и полей таблицы может возникнуть путаница, в дальнейшем будет тяжело сопровождать код.
ptand, какое приложение? О чём Вы? Показывайте только проблемный код. В данном случае это форма, действие для валидации и модель, в которой настроены правила валидации.
Silverviql, вот Вы не указали изначально, в каком виде хранится дата. И как Вы предлагаете отгадать это?
Ну даже если не брать во внимание это, то хотя бы в документации можно посмотреть, что возвращает strtotime()?
А возвращает она временную метку UNIX. Ну и как Вы собираетесь сравнивать дату в формате 'Y-m-d H:i:s' с временной меткой?
Я привёл Вам вполне рабочий код, но только в том случае, если дата у Вас хранится в временной метке.
А то что у Вас не заработало, то это только Ваша проблема. И кАвычки тут создают проблему в самую последнюю очередь.
Учитывая, что дата у Вас хранится в формате 'Y-m-d H:i:s', то код должен работать так ->andWhere(['>=', 'data', '2017-04-01 00:00:00'])
Но тут может сыграть роль то, что Вы сравниваете строку с датой. А для этого надо привести всё к временной метке и тогда не будет проблем.
Храните дату в временной метке и не будет в будущем подобных проблем, так же решится проблема с временными поясами.