在這個例子中,我正在處理兩個模型:部門和用戶。從CakePHP的FormHelper中定義關聯模型選擇框的排序順序?
部門屬於關聯用戶 (在這種情況下,用戶是一個部門經理[空允許]。)
使用表單助手,我簡單地定義的用戶ID的選擇爲:
echo $this->Form->input('user_id', array('label'=>'Department/Group Manager (leave blank if none)', 'empty' => true));
默認情況下,FormHelper似乎通過User.id ASC(HTML select元素的「value」屬性)來排序選擇項。爲了使事情在add.ctp形式更好,我創建了一個虛擬的領域爲「姓氏,名字」被用作用戶模式的顯示領域:
public $virtualFields = array(
'name' => "CONCAT(User.lastName, ', ', User.firstName)"
);
public $displayField = 'name';
這偉大的工作。不幸的是,我希望能夠通過虛擬字段的值(在這種情況下爲User.lastName)而不是User.id來對呈現的選擇框中的項目進行排序。我無法找到一種使用FormHelper的方法。是否有另一種方法來做到這一點(如果FormHelper不能這樣做)?