默认情况下,在表单输入CakePHP 3中选择数组的第二项

时间:2016-05-23 11:57:12

标签: php arrays cakephp cakephp-3.x

在我的控制器中,我得到一个数组,准备填充输入字段的下拉值,如下所示:

    $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']);

始终在下拉列表中预选数组的第一项。我想要实现的是默认情况下总是选择数组中的第二项。

这可能吗?

非常感谢任何帮助或指导。

1 个答案:

答案 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
]);