关于 Gii 生成后的 sort 排序 [ 2.0 版本 ]
今天突然发现,我后台用 Gii 生成的 crud,排序逻辑也不用我写的,sort 字段直接搞定。。。
那么问题来了,控制器是如何对传来的 sort 字段进行处理,然后输出排序好的 dataProvider 的?很尴尬,我找了半天没找到在哪,请各位大哥指点一下
PenDon 补充于 2020-01-07 09:57
描述的不太清楚,再仔细说一下:通过gii/CRUD生成的products/controller/index方法:
public function actionIndex()
{
$searchModel = new ProductSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
AR类ProductSearch也是通过gii/CRUD生成的:
class ProductSearch extends Product
{
public function rules()
{
// ...验证略
}
public function scenarios()
{
return Model::scenarios();
}
public function search($params)
{
$query = Product::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
return $dataProvider;
}
// $query->andFilterWhere([ ...
]);
return $dataProvider;
}
}
在生成的视图页面里点击可排序字段会传一个sort字段到products/index方法,对数据进行排序(url:http://localhost:63341/index.php/admin/shop/products?sort=heat),这个sort字段是如何被处理的呢?
最佳答案
其他 0 个回答
没有找到数据。
PenDon 长沙
注册时间:2019-08-21
最后登录:2021-11-19
在线时长:22小时42分
最后登录:2021-11-19
在线时长:22小时42分
- 粉丝0
- 金钱540
- 威望10
- 积分860