我有一个属于章节的策略表。当我在网格视图中查看策略时,我希望默认订单成为章节标题中的策略标题。我看到如何设置排序属性来启用它,但我无法弄清楚如何将defaultOrder设置为基于章节标题和策略标题。当我尝试将policy.title设置为defaultOrder设置中的属性时,我收到错误消息。Yii2排序对象defaultOrder
1
A
回答
1
如果政策是模型类策略表中有一个名为“章”和chapter_id现场联动的章节表,如关系:
public function getChapter()
{
return $this->hasOne(Chapter::className(), ['chapter_id' => 'chapter_id']);
}
现在你建立查询对象的政策与章加入:
$query = Policy::find()
->joinWith(['chapter']);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=> ['defaultOrder' => ['chapter.title'=>SORT_ASC, 'policy.title' => SORT_ASC]]
]);
0
我不能让法布里奇奥的回答工作,因为我的章表policy_chapter,不只是章,所以是不一样的关系名称。当我尝试使用关系名称时,出现错误。我终于搞清楚了,你必须使用相关表的名称,而不是关系,并将它们添加为属性。例如:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => ['pageSize' => 50],
'sort' => [
'defaultOrder' => ['policy_chapter.sort' => SORT_ASC,'policy_chapter.title' => SORT_ASC],
'enableMultiSort' => true,
'attributes' => [
'id' => [
'asc' => ['policy.id' => SORT_ASC],
'desc' => ['policy.id' => SORT_DESC],
'default' => SORT_ASC
],
'chapter_id' => [
'asc' => ['policy_chapter.sort' => SORT_ASC,'policy_chapter.title' => SORT_ASC],
'desc' => ['policy_chapter.sort' => SORT_DESC,'policy_chapter.title' => SORT_DESC],
'default' => SORT_ASC,
],
'reference' => [
'asc' => ['reference' => SORT_ASC],
'desc' => ['reference' => SORT_DESC],
'default' => SORT_ASC
],
'title' => [
'asc' => ['policy.title' => SORT_ASC],
'desc' => ['policy.title' => SORT_DESC],
'default' => SORT_ASC
],
'policy_chapter.sort',
'policy_chapter.title',
],
],
]);
使用关系名称或忽略这些属性,就会得到错误。我在写
'defaultOrder' => ['policy_chapter.sort' => SORT_ASC,'policy_chapter.title' => SORT_ASC],
和Yii的却高兴不起来之前
相关问题
- 1. Yii2 gridview排序
- 2. Yii2排序关系
- 3. Yii2高级排序
- 4. 排序的GridView Yii2
- 5. 排序对象
- 6. 排序对象
- 7. 排序对象
- 8. 排序对象
- 9. 排序对象
- 10. 排序对象
- 11. 排序对象
- 12. 排序对象
- 13. 排序对象
- 14. 对象排序与对象
- 15. 排序JavaScript对象
- 16. Javascript:对象排序
- 17. Jquery - 排序对象
- 18. UI排序对象
- 19. 排序JS对象
- 20. 排序的对象
- 21. Javascript对象[排序]
- 22. 排序FileList对象
- 23. Yii2排序计算字段
- 24. yii2排序不工作
- 25. 排序集合的Java对象排序
- 26. 排序@Sortable对象的降序排列
- 27. 如何排序对象的JS对象?
- 28. JS - 排序对象中的子对象
- 29. 在对象中排序对象,javascript
- 30. 按子对象排序对象数组