[英]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.