I am getting sql violation error while quering this code

I am trying to put condition in my sql query.


 'query' => Inventory::find()->

                where(['user_id' =>  Yii::$app->user->identity->id ])->

                andWhere('placed_date'<= date('Y-m-d H:i:s')),

        ]),

But I am getting the following error




SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

The SQL being executed was: SELECT COUNT(*) FROM `inventory` WHERE (`user_id`=113) AND ()

Error Info: Array

(

    [0] => 42000

    [1] => 1064

    [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

)

Check your andWhere(), you did not put there any condition.

I want to put the condition as less than or equal to the present server time How can I do that?

In your code you did not set any condition, check few andWhere() examples and you will get it ;)


andWhere('publish_on_date <= NOW()');

This solved the issue.

But do you understand the difference? Now you did give a condition, before not.

Yeah, Before yii2 took it as an element of an array

Exactly, and you were missing the condition as the first parameter to andWhere, before that assignment.