在一个文本框中搜索“所有属性”

时间:2018-08-06 06:23:53

标签: php yii yii2

enter image description here 我有一个表:Email,属性:id,主题,内容,收件人,抄送,...

然后在索引中,只有一个搜索框。我希望此搜索框可以搜索每个属性中的所有值。

就像上面的图片一样,我们可以在1个搜索文本框中按“收件人”属性或“主题”属性或其他属性进行搜索。

enter image description here enter image description here

我应该在控制器中还是在索引视图中进行编码?

希望大家都能共享代码,以便完成此任务。

谢谢你,祝你有美好的一天

3 个答案:

答案 0 :(得分:2)

另一种方式,

$model = User::find()
    ->where([
        'OR',
        ['like', 'name', $search],
        ['like', 'email', $search],
        ['like', 'address', $search],   
    ])
    ->all();

答案 1 :(得分:0)

知道了。在Yii 2中,您可以执行以下操作:

<?php
    $model = User::find()
    ->where('name LIKE :name', [':name' => $search])
    ->orWhere('email LIKE :email', [':primary_user' => $search])
    ->orWhere('address LIKE :address', [':address' => $search])
    . . .
    ->all();

答案 2 :(得分:0)

搜索值在以下字段中过滤后 如果$ search变量为空,则orFilterWhere函数忽略查询中的条件

$model = User::find() 
$model
->orFilterWhere(['like', 'name', $search])
->orFilterWhere(['like', 'email', $search])
->orFilterWhere(['like', 'address', $search])
->asArray()
->all();