0

現在、選択ボックスは、モデルのビューでPlayers使用するために、クラスの仮想フィールドから作成されています。選択ボックスは現在IDでソートされています。むしろ、で並べ替えたいと思います。add.ctpStatisticsPlayer.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>
4

1 に答える 1

2

はい、仮想フィールドで並べ替えることはできますが、仮想フィールドはそうでは'name'ありません'last_name'。試す$order = array('Player.name');

于 2012-08-31T15:47:38.967 に答える