现在,我的Players
课程中的虚拟字段正在创建我的选择框,以便在add.ctp
模型的Statistics
视图中使用。选择框当前正按ID排序。我宁愿按Player.last_name
排序。
这是我的模特:
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>
答案 0 :(得分:2)
是的,您可以按虚拟字段排序,但您的虚拟字段为'name'
而不是'last_name'
。试试$order = array('Player.name');