从GridView中获取过滤器字段的url值

时间:2014-12-11 11:52:28

标签: yii2

在我的网格视图中,我添加了自己的过滤器。但是你可以看到我必须使用“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'],
        ],
]); ?>

2 个答案:

答案 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使用的模型相同吗?这应该!或者你只是在这里重命名?