Yii2默认排序不起作用
我需要按id进行默认排序,我们不在网格中显示id,这就是默认排序不起作用的原因。这里是我的排序代码Yii2默认排序不起作用,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我需要按id进行默认排序,我们不在网格中显示id,这就是默认排序不起作用的原因。这里是我的排序代码 public function search($params) { $this->load($params); $query = new \yii\db\Query; $expression = new \yii\db\Expression('CASE WHEN b.status = 1 THEN "Active" WHEN b
public function search($params)
{
$this->load($params);
$query = new \yii\db\Query;
$expression = new \yii\db\Expression('CASE WHEN b.status = 1 THEN "Active" WHEN b.status = 2 THEN "Inactive" END AS status');
$query->select(['b.image','bl.name',$expression,'b.brand_id'])
->from('brand AS b')
->join('INNER JOIN',
'brand_lang AS bl',
'bl.brand_id = b.brand_id AND lang_id = 1');
$query->andFilterWhere([
'status' => $this->status,
]);
$query->andFilterWhere(['like', 'name', $this->name]);
$command = $query->createCommand();
$data = $command->queryAll();
$dataProvider = new \yii\data\ActiveDataProvider([
'query' => $query,
'totalCount' => count($data),
'sort' => [
'attributes' => [
'name' => [
'asc' => ['name' => SORT_ASC, 'name' => SORT_ASC],
'desc' => ['name' => SORT_DESC, 'name' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Name',
],
'status' => [
'asc' => ['status' => SORT_ASC, 'status' => SORT_ASC],
'desc' => ['status' => SORT_DESC, 'status' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Status',
],
'brand_id' => [
'asc' => ['brand_id' => SORT_ASC, 'brand_id' => SORT_ASC],
'desc' => ['brand_id' => SORT_DESC, 'brand_id' => SORT_DESC],
'default' => SORT_ASC,
'label' => 'Brand',
],
'defaultOrder' => ['brand_id' => SORT_ASC]
],
],
'pagination' => [
'pageSize' => 20,
],
]);
return $dataProvider;
}
有人能告诉我这个问题的解决方案吗?我在谷歌上搜索了很多次,但没有成功你的参数应该在,而不是在:
您的参数应该在,而不是在:
使用
$dataProvider->sort->attributes['attribute\u name']
:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => ['brand_id' => SORT_ASC]
],
]);
$dataProvider->sort->attributes['name'] = [
'asc' => ['name' => SORT_ASC],
'desc' => ['name' => SORT_DESC],
];
使用
$dataProvider->sort->attributes['attribute\u name']
:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => ['brand_id' => SORT_ASC]
],
]);
$dataProvider->sort->attributes['name'] = [
'asc' => ['name' => SORT_ASC],
'desc' => ['name' => SORT_DESC],
];
您的回答是正确的,但什么是标准的,为什么不在排序数组中使用它。@HiteshJangid。您的回答是正确的,但什么是标准的,为什么不在排序数组中使用它。@HiteshJangid。