defaultOrder chứa một mảng trong đó khóa là tên cột và giá trị là một SORT_DESC
hoặc SORT_ASC
đó là lý do tại sao mã bên dưới không hoạt động.
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Đúng cách
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => [
'defaultOrder' => [
'topic_order' => SORT_ASC,
]
],
]);
Lưu ý: Nếu truy vấn đã chỉ định mệnh đề orderBy, các hướng dẫn đặt hàng mới do người dùng cuối đưa ra (thông qua cấu hình sắp xếp) sẽ được thêm vào mệnh đề orderBy hiện có. Bất kỳ điều khoản giới hạn và bù đắp hiện có nào sẽ bị ghi đè bởi yêu cầu phân trang từ người dùng cuối (thông qua cấu hình phân trang).
Bạn có thể tìm hiểu chi tiết từ
Hướng dẫn Yii2 của Nhà cung cấp dữ liệu
Sắp xếp bằng cách chuyển đối tượng Sắp xếp trong truy vấn
$sort = new Sort([
'attributes' => [
'age',
'name' => [
'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Name',
],
],
]);
$models = Article::find()
->where(['status' => 1])
->orderBy($sort->orders)
->all();