Filter Yii2:如何在自定义ActiveDataProvider中进行筛选?
我创建了这个ActiveDataProvider:Filter Yii2:如何在自定义ActiveDataProvider中进行筛选?,filter,yii2,Filter,Yii2,我创建了这个ActiveDataProvider: $dataProvider = new ActiveDataProvider([ 'query' => $query->asArray(), // It is a simple SQL query. 'key' => 'item', 'sort' => [ 'attributes' => [ 'item', 'quantity'
$dataProvider = new ActiveDataProvider([
'query' => $query->asArray(), // It is a simple SQL query.
'key' => 'item',
'sort' => [
'attributes' => [
'item',
'quantity',
],
]
]);
我需要为项目和数量添加过滤器,因为它不起作用(它不搜索):
您必须没有在SearchModel方法中设置属性项和数量 您必须将它们设置为在SearchModel中
public function rules()
{
return [
[['item', 'quantity'], 'safe'],
];
}
在您的情况下,您的数据提供者应该是这样的:
// It is not necessary to use "$query->asArray()", because your "$query" itself is object of ActiveQuery
$dataProvider = new ActiveDataProvider([
'query' => $query,
'key' => 'item',
]);
您想根据这些属性进行升序还是降序排序?不,没关系。我只需要在字段内书写和搜索。你面临的问题是什么?你的问题不清楚为什么不起作用?显示gridview的完整搜索模型和视图代码。从ActiveDataProvider中删除排序后重试。