Yii2中的相关下拉列表在更新时丢失值

Yii2中的相关下拉列表在更新时丢失值,yii2,Yii2,我创建了一个表单,其中一个dropdownlist依赖于另一个没有扩展的表单,它运行得很快 但是,当您尝试更改同一表单时,第二个下拉列表的值为lost type_id。基本上,类型字段取决于所选区域。请参阅我的代码: _form.php 控制器 我认为这是同样的问题,但我不理解它是如何工作的。您需要提供默认选项集,它应该从中选择保存的选项,而您没有提供任何数据 <?php $types = Type::find() ->where(['area_id' =&g

我创建了一个表单,其中一个dropdownlist依赖于另一个没有扩展的表单,它运行得很快

但是,当您尝试更改同一表单时,第二个下拉列表的值为lost type_id。基本上,类型字段取决于所选区域。请参阅我的代码:

_form.php

控制器


我认为这是同样的问题,但我不理解它是如何工作的。

您需要提供默认选项集,它应该从中选择保存的选项,而您没有提供任何数据

<?php
$types = Type::find()
            ->where(['area_id' => $model->area_id])
            ->orderBy(['name' => SORT_ASC])
            ->all();

echo $form->field($model, 'type_id')->dropDownList(ArrayHelper::map($types,'id','name'),['prompt'=>'Selecione a Área']);
?>   

您的意思是Dep下拉列表不选择保存的值?当您尝试编辑记录时。是!它丢失了字段值类型。\u id您如何将值加载到模型中您是否使用findOne选择模型
public function actionLists($id)
{
    $countType = Type::find()
            ->where(['area_id' => $id])
            ->count();

    $types = Type::find()
            ->where(['area_id' => $id])
            ->orderBy(['name' => SORT_ASC])
            ->all();

    if($countType > 0 )
    {
        foreach($types as $type ){
            echo "<option value='".$type->id."'>".$type->name."</option>";
        }
    }
    else{
        echo "<option> - </option>";
    }

}
<?php
$types = Type::find()
            ->where(['area_id' => $model->area_id])
            ->orderBy(['name' => SORT_ASC])
            ->all();

echo $form->field($model, 'type_id')->dropDownList(ArrayHelper::map($types,'id','name'),['prompt'=>'Selecione a Área']);
?>   
public function actionLists($id)
{

    $types = Type::find()
            ->where(['area_id' => $id])
            ->orderBy(['name' => SORT_ASC])
            ->all();

    if(count($types) > 0 )
    {
        foreach($types as $type ){
            echo "<option value='".$type->id."'>".$type->name."</option>";
        }
    }
    else{
        echo "<option> - </option>";
    }

}