Yii2 从GridView中筛选器字段的url获取值

Yii2 从GridView中筛选器字段的url获取值,yii2,Yii2,在我的网格视图中,我添加了自己的过滤器。但正如您所看到的,我必须使用“value”从url获取输入字段的值。其他过滤器字段不需要任何东西,它们自动拾取值,但自定义过滤器字段不需要。我输入一些东西,它接受并搜索,然后字段为空 <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'tableOptions'=>

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

您可以在过滤器中添加:

$this->date_created=Yii::$app->getRequest()->getQueryParam('date_created',NULL);

您的问题可能是,您的SearchModel中没有通过规则正确验证的公共属性。如果该属性不在规则中(对于给定场景),则它不接受该值,而是将字段/属性设置为null

文档的这一部分解释了如何使用SearchModels和attributes进行过滤

编辑:还需要指出的是,过滤器的值不是从url获取的,而是从传输到视图(gridview的filterModel)的模型的相应属性获取的

编辑:
searchModel是否与过滤器中activeInputField使用的模型相同?应该的!或者您只是在这里重命名了它?

您的意思是:'value'=>$this->date\u created=Yii::$app->getRequest()->>getQueryParam('date\u created',NULL)是的,即使最好将其放在您的过滤器中,一些地方,例如您的模型搜索过滤器my属性“date\u created”是来自数据库的属性,所以关于此属性的所有内容都是由gii生成的。我刚刚添加了我自己的过滤器。您可以调试您的模型属性是否已实际加载和验证,搜索函数中的条件是否已实际满足,并且没有返回空的数据提供程序吗?搜索工作正常,唯一的问题是它没有从URL中拾取值activeInput的模型应该是filterModel。这是BrederResultsSearch还是您重命名了它?