Jak zaimplementować następujący kod Yii do Yii2:
<?php
echo $form->dropDownList($model,
"project",
$model->getProjectOptions(),
array("empty" => "Empty string")
);
?>
Odpowiedzi:
26 dla odpowiedzi nr 1Dlaczego nie
dropDownList($model, "project", $model->getProjectOptions(), array("prompt"=>"Empty string"); ?>
- prompt: string, tekst zachęty wyświetlany jako pierwsza opcja;
Oto stary CHtml https://github.com/yiisoft/yii2/blob/master/framework/yii/helpers/base/Html.php
Można tam znaleźć, jeśli potrzebujesz czegoś więcej.
7 dla odpowiedzi nr 2
Użyj poniższego kodu, aby uzyskać listę rozwijaną w Yii2 znajomego.
<?php
//use appmodelsCountry;
$countries=Country::find()->all();
//use yiihelpersArrayHelper;
$listData=ArrayHelper::map($countries,"code","name");
echo $form->field($model, "name")->dropDownList(
$listData,
["prompt"=>"Select..."]);
?>
4 dla odpowiedzi nr 3
Spróbuj tego : Możesz usunąć szablon, jeśli chcesz.
<?php
$form = ActiveForm::begin([
"id" => "test-form",
"options" => ["class" => "form-horizontal"],
"enableClientValidation"=> true,
"enableAjaxValidation"=> false,
"validateOnSubmit" => true,
"validateOnChange" => true,
"validateOnType" => true,
"action" => Yii::$app->homeUrl . "your/url/path"
]);
?>
echo $form->field($model,
"your_field_name",
["template" => "<div class="col-md-3">
{label}
</div>
<div class="col-md-9">
{input}{error}{hint}
</div>"
])
->dropdownList($option_array, ["prompt" => "--Select--"]);
<?php ActiveForm::end(); ?>
2 dla odpowiedzi № 4
Szukasz czegoś takiego?
<?=$form->field($model, "project")
->dropDownList(ArrayHelper::map(["empty"=>"Empty string"], "id", "value"))
->label(false);
?>
1 dla odpowiedzi nr 5
Kiedy tworzysz tablicę projectOptions, po prostu upewnij się, że pierwszy indeks ma klucz zerowy, taki jak ten:
[
null => "Empty option",
... // Your options
]
I Twoim zdaniem po prostu dodajesz
$form->field($model, "project")->dropDownList($model->projectOptions);
Kiedy nazwa twojej funkcji zaczyna się od „get”, po której następuje wielka litera, yii rozumie to jako atrybut, więc
public function getSomeOptions(){ ..
jest takie samo someOptions
, to ta sama zasada relacji między tabelami