Yii 框架中的文本输入和过滤


Text Input and filter in Yii FrameWork

如何在 Yii 框架中创建一个新的 TextInput 并使其成为 filterSelector我在模型中做了这个:

<input name='searchfield' id='searchModel'> 
'filterSelector' => '#searchModel',

对于搜索模型:

if ($this->company_name) {
        $query->andFilterWhere(['like', 'company_name', $this->company_name]);;
 }

但问题是网格视图正在刷新而不显示结果

你把它标记为Yii,但从语法来看,它可能是Yii2。我要给你一些我做过的东西:

这将是您的控制器:

public function actionSomething()
{
    $criteria = new CDbCriteria();
    if(isset($_GET['query']))
    {
        $query = $_GET['query'];
        $criteria->compare('attribute_of_model', $query, true, 'OR');
        // you can add more attributes with which you want to compare query, that is why I added 'OR' if you remove 'OR' it defaults to 'AND'
    }
    $dataProvider=new CActiveDataProvider("YourModel", array('criteria'=>$criteria));
        $this->render('index',array(
            'dataProvider'=>$dataProvider,
        ));
}

这将是你的观点:

<form method="get">
    <input type="search" placeholder="filter" name="query" value="<?=isset($_GET['query']) ? CHtml::encode($_GET['query']) : '' ; ?>" />
    <input type="submit" value="search" />
</form>

这应该有效。如果你正在开发 Yii2,那么你将不得不稍微改变它。