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

Search All Attribute in one textbox

我有一个 table: Email,属性:id, subject, content, to, cc, ...

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

如上图,我们可以通过"To"属性,或"Subject"属性或1个搜索文本框中的其他属性进行搜索。

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

希望大家把代码分享出来,才能完成这个任务。

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

知道了。在 Yii、Yii2 中,你可以这样做:

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

另一种方式,

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

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

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