/ / Yii2 lista rozwijana pusta - php, menu rozwijane, yii2

Yii2 dropdown pusta opcja - php, menu rozwijane, yii2

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 1

Dlaczego 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