在我的网格视图中,我添加了自己的过滤器。但是你可以看到我必须使用“value”来从url获取该输入字段的值。其他过滤器字段不需要任何内容,它们会自动获取值,但自定义过滤器字段不会。我输入内容,接受并搜索,之后字段为空。
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'tableOptions'=>['class'=>'table table-striped table-hover table-bordered responsive',],
'columns' => [
[
'attribute'=>'date_created',
'filter'=>Html::activeTextInput($BreederResultsSearch, 'date_created', ['class'=>'js-datepicker', 'value'=>isset($_GET["BreederResultsSearch"])?$_GET["BreederResultsSearch"]["date_created"]:NULL]),
],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
答案 0 :(得分:0)
在您的过滤器中,您可以添加:
$this->date_created=Yii::$app->getRequest()->getQueryParam('date_created',NULL);
答案 1 :(得分:0)
您的问题可能是,您的SearchModel中没有通过规则正确验证的公共属性。如果属性不在规则中(对于您的给定方案),则不会获取该值,而是将字段/属性设置为null。
本部分文档解释了如何使用SearchModel和属性进行过滤。 http://www.yiiframework.com/doc-2.0/guide-output-data-widgets.html#filtering-data
编辑:另外要提一下的是,过滤器不会从网址获取值,而是从传输到视图的模型的相应属性中获取(gridview的filterModel) )
修改强> searchModel与过滤器中的activeInputField使用的模型相同吗?这应该!或者你只是在这里重命名?