2017-03-24 27 views
1

不是一个大问题,但我想弄明白为什么。 我正在阅读Yii2的例子。 而我注意到在db事务的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曾尝试过。 那么“$ defaultValue”的用法是什么? 或者它只是一个非常识。 我GOOGLE了它,不知道。 谢谢你的时间。

回答

0

正如可以在yii2参考http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

在ArrayHelper的地图()函数看到可以使用用于从,到和组PARAM一个clousure太..

然后在clusere你可以通过个内部功能列表ØPARAM是你如果你不使用 $默认值,所以你能避免通过这个变种

ArrayHelper::map(Room::find()->all(), 'id', 
    function($room) { 
    return sprintf('Room n.%d at floor %d', $room->room_number, $room->floor); 
    }) 

您也可以使用$测试“可见”里面的功能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); 
    }) 
+0

谢谢,帮帮我很多。 – Yuzuha