簡體   English   中英

在CakePHP 3中對選擇列表(optgroup)進行分組

[英]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'
]);

...以及我的IssuesControlleredit方法中:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM