Browse Source

Added ability to generate dropdown from Enum field

Alternatively, if statement could be: if(substr($column->dbType, 0, 4) === 'enum'), however expected implemented option to be more robust across other database formats.

Created after followup on this issue:  https://github.com/yiisoft/yii/issues/292#issuecomment-44780779
tags/2.0.0-rc
Joel Small 10 years ago
parent
commit
e636174992
  1. 9
      extensions/gii/generators/crud/Generator.php

9
extensions/gii/generators/crud/Generator.php

@ -247,7 +247,14 @@ class Generator extends \yii\gii\Generator
} else { } else {
$input = 'textInput'; $input = 'textInput';
} }
if ($column->phpType !== 'string' || $column->size === null) { if(is_array($column->enumValues) && count($column->enumValues) > 0){
$dropDownOptions = "'' => '', ";
foreach ($column->enumValues as $enumValue)
{
$dropDownOptions .= "'".$enumValue."' => '".$enumValue."', ";
}
return "\$form->field(\$model, '$attribute')->dropDownList([".$dropDownOptions."])";
} else if ($column->phpType !== 'string' || $column->size === null) {
return "\$form->field(\$model, '$attribute')->$input()"; return "\$form->field(\$model, '$attribute')->$input()";
} else { } else {
return "\$form->field(\$model, '$attribute')->$input(['maxlength' => $column->size])"; return "\$form->field(\$model, '$attribute')->$input(['maxlength' => $column->size])";

Loading…
Cancel
Save