在我的控制器中,我得到一个数组,准备填充输入字段的下拉值,如下所示:
$this->loadModel('Meetings');
$meetings_query = $this->Meetings->find('list', ['keyField' => 'id', 'valueField' => 'date'])
->where( ["Meetings.date >= " => date('Y-m-d') ] )
->order( ['Meetings.date' => 'ASC'] );
$meetings_raw = $meetings_query->toArray();
$meetings = array();
foreach( $meetings_raw as $key => $value ){
if( !empty( $value ) ){
$meetings[$key] = $value->format('Y-m-d');
}
}
这会构建一个类似于此的数组:
Array ( [26] => 2016-05-25 [22] => 2016-05-28 [23] => 2016-05-30 )
然后以如下形式显示为选择字段:
echo $this->Form->input( 'meeting_id', ['label' => 'Meeting']);
始终在下拉列表中预选数组的第一项。我想要实现的是默认情况下总是选择数组中的第二项。
这可能吗?
非常感谢任何帮助或指导。
答案 0 :(得分:1)
// convert to array
$a = $meetings->toArray();
// extract keys to new array
// removes the first from the array
$s = array_slice(array_keys($a),0);
echo $this->Form->input( 'meeting_id', [
'label' => 'Meeting',
'default' => array_shift($s) // use first value from sliced array
]);