我遇到全名自动填充问题。 我有一个usertable,其中包含firstname,lastname columns。通过ajax。
在搜索操作中,这是我的代码:
$users = (new Query())
->select('*')
->from($userTable)
->where(['like', 'username', $searchTerm])
->orWhere(['like', 'firstname', $searchTerm])
->orWhere(['like','lastname', $searchTerm])
->andWhere(['<>','id', Yii::$app->user->id])
->andWhere(['status'=>self::STATUS_ACTIVE])
->orderBy('username')
->limit(20)
->all();
我的问题是当我尝试使用姓氏搜索第一个名称获取空记录时。
感谢您的支持,我通过保持concat解决了
$users = (new Query())
->select('*')
->from($userTable)
->where(['like', 'username', $searchTerm])
->orWhere(['like', "CONCAT(firstname, ' ', lastname)", $searchTerm])
->andWhere(['<>','id', Yii::$app->user->id])
->andWhere(['status'=>self::STATUS_ACTIVE])
->orderBy('username')
->limit(20)
->all();
答案 0 :(得分:0)
以下代码对我使用SQL数据库
工作正常$query->orWhere(['like', "CONCAT([staff].[first_name], ' ',[staff].[middle_name],' ', [staff].[last_name])", $this->name]);
答案 1 :(得分:-3)
可以用
替换两个orWhere用于firstname和lasta名称 ->orWhere(" concat('firstname', ' ' , 'lastname') like concat('%',:search_term) ")
->addParam(':search_term',$searchTerm )