[英]Grouping a select list (optgroup) in CakePHP 3
我正在嘗試在CakePHP 3中創建分組列表,以在表單的選擇列表中創建分組列表。 我不確定我是否缺少某些東西,或者我是否期望Cake太多而應該自己做更多的事情。
我有一個名為Issues
的控制器和一個名為RelatedIssues
的自引用列。 每個Issue
屬於一個System
,這是我希望將這些問題分組的系統。
在我的IssuesTable.php
:
$this->belongsTo('RelatedIssues', [
'className' => 'Issues',
'foreignKey' => 'issue_id'
]);
$this->belongsTo('Systems', [
'foreignKey' => 'system_id',
'joinType' => 'INNER'
]);
...以及我的IssuesController
的edit
方法中:
$relatedIssues = $this->Issues->RelatedIssues->find('list', [
'groupField' => 'system_id'
]);
當我進入下拉列表時,按指定的項目按system_id
分組,但是我無法弄清楚如何按System
的title字段對它們進行分組。 這是否有可能,還是我必須編寫一個漂亮的嵌套的foreach
結構自己完成?
應該是(現在可以嘗試):
$relatedIssues = $this->Issues->RelatedIssues->find('list', [
'groupField' => 'system.title'
])->contain('Systems');
考慮以下幾點,比較清楚:
$relatedIssues = $this->Issues->RelatedIssues->find('list', [
'contain' => ['Systems'],
'order' => [ 'Systems.title' => 'ASC', 'RelatedIssues.title' => 'ASC'],
'groupField' => function($entity) {
return $entity->system->title;
}
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.