現在我的選擇框正在從我的Players
類中的虛擬場創建,用於我的Statistics
模型的add.ctp
視圖。選擇框當前正在按id排序。我寧願按Player.last_name
排序。我可以根據虛擬字段對cakePHP選擇框進行排序嗎?
這裏是我的模型:
class Player extends AppModel {
public $name = 'Player';
public $virtualFields = array(
'name' => "TRIM(CONCAT(Player.last_name, ', ', Player.first_name))"
);
public $displayField = 'name';
var $hasMany = array(
'Statistic' => array(
'className' => 'Statistic',
'foreignKey' => 'player_id',
'dependent'=> true
)
);
}
這是我用我的add.ctp
觀點是什麼:
echo $this->Form->input('player_id');
這是電流輸出(由player_id訂購):
<select name="data[Statistic][player_id]" id="StatisticPlayerId">
<option value="335">Smith, Jordan</option>
<option value="336">Marall, Jabari</option>
<option value="337">Rusell, Mike</option>
<option value="338">Johnson, Calvin</option>
<option value="339">Thompson, Daniel</option>
<option value="340">Dennis, Jacob</option>
</select>
這是所需的輸出(按姓氏排序):
<select name="data[Statistic][player_id]" id="StatisticPlayerId">
<option value="340">Dennis, Jacob</option>
<option value="338">Johnson, Calvin</option>
<option value="336">Marall, Jabari</option>
<option value="337">Rusell, Mike</option>
<option value="335">Smith, Jordan</option>
<option value="339">Thompson, Daniel</option>
</select>
是的,你可以按虛擬字段排序,但你的虛擬字段是「name」而不是「last_name」。嘗試'$ order = array('Player.name');' – Choma
我會給你一個鏡頭,但在此期間,你想提交一個答案,如果它是正確的,我可以給你信貸它? – bigmike7801
完成,我希望它有幫助! – Choma