Yii2赞查询

时间:2018-10-04 20:45:39

标签: php sql yii2

嗨,我需要在Yii2中建立一个具有3个赞的查询。这是一个formsearch。

Select vchName, vchType, vchEmail from Tours where vchName like _Post('vchname') and vchType like _Post('vchType') and vchEmail like _Post('vchEmail') 

我尝试这样做,但这是错误的。请帮助。

$query->where(['like','vchName',Yii::$app->request->post('vchName')])->
                        andWhere(['like','vchJourney',Yii::$app->request->post('vchJourney')])->
                        andWhere(['like','vchTypesOfTours',Yii::$app->request->post('vchTypesOfTours')]);

这是错误:

.Invalid Argument – yii \ base \ InvalidArgumentException 运算符“ LIKE”需要两个操作数。

1 个答案:

答案 0 :(得分:0)

根据错误消息提示,Operator 'LIKE' requires two operands.

我假设您遇到代码在非POST请求上运行的情况,或者只是没有提供运行查询所需的所有POST参数。

我建议使用方法andFilterWhere而不是andWhere。

$query
    ->andFilterWhere(['like','vchName',Yii::$app->request->post('vchName')])
    ->andFilterWhere(['like','vchJourney',Yii::$app->request->post('vchJourney')])
    ->andFilterWhere(['like','vchTypesOfTours',Yii::$app->request->post('vchTypesOfTours')]);

请注意,如果提供的任何参数为空(例如Yii::$app->request->post('vchName')),则条件本身将被跳过。

验证您正在使用/发布这些变量是否正确。特别是因为默认符号应该类似于Yii::$app->request->post('SearchFormName')['vchName']