不是一个大问题,但我想弄明白为什么。 我正在阅读Yii2 By Example。 我注意到db event的exmaple中的视图文件。 关于下拉列表,这是代码:
<?= $form->field($reservation, "room_id")->
dropDownList(ArrayHelper::map(Room::find()->all(), 'id',
function($room, $defaultValue) {
return sprintf('Room n.%d at floor %d', $room->room_number, $room->floor);
})); ?>
我尝试使用和不使用$ defaultValue.Both。 那么什么是&#34; $ defaultValue&#34;? 或者它只是一个非意义。 我用Google搜索并且不知道。 谢谢你的时间。
答案 0 :(得分:0)
正如您在yii2参考http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail
中看到的那样在ArrayHelper的map()函数中,你可以使用from,to和group param a clousure ..
然后在clusere中,您可以将内部函数传递给一个列表o param,它是&#34;可见&#34;在你没有使用的情况下的功能内部 $ defaultValue所以你可以避免传递这个var
ArrayHelper::map(Room::find()->all(), 'id',
function($room) {
return sprintf('Room n.%d at floor %d', $room->room_number, $room->floor);
})
您也可以使用$ test var并使用它,例如:
$test = 'Big ';
ArrayHelper::map(Room::find()->all(), 'id',
function($room) use($test) {
return sprintf( $test . 'Room n.%d at floor %d', $room->room_number, $room->floor);
})