2017-03-24 4 views
1

Kein großes Problem, aber ich will es herausfinden, warum. Ich las bei Yii2 mit Beispiel. Und ich habe diese View-Datei im Beispiel einer db-Transaktion bemerkt. es geht um Dropdownlist, hier ist der Code:

<?= $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); 
})); ?> 

Ich versuchte es mit und ohne die $ defaultValue.Both gearbeitet. also was ist die Verwendung von "$ defaultValue"? oder es ist nur ein Nicht-Sinn. Ich googelte es und habe keine Ahnung. Vielen Dank für Ihre Zeit.

Antwort

0

Wie Sie in der yii2 Referenz http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

in der Karte() Funktion des ArrayHelper sehen Sie aus, nach und Gruppe param ein clousure verwenden ..

dann in der clusere Sie eine Liste o param geben th der inneren Funktion, die „sichtbar“ in der Funktion sind Sie nicht $ default Use case tun, damit Sie dieses var

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

Sie auch $ Test verwenden könnte passieren könnte vermeiden var und benutze es zB:

$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

Vielen Dank, hilf mir viel. – Yuzuha

Verwandte Themen