Upload a json into a DropDownList Yii2

1

I recently migrated to the YII 2 framework. And I have one small question: I have a json that I need to pop a DropDownList. The Json file:

[
{"codigo": "05", "descricao" : "Administrador"},
{"codigo": "10", "descricao" : "Diretor"},
{"codigo": "16", "descricao" : "Presidente"},
{"codigo": "22", "descricao" : "Sócio"},
{"codigo": "29", "descricao" : "Sócio ou Acionista Incapaz ou Relativamente Incapaz (exceto menor)"},
{"codigo": "30", "descricao" : "Sócio ou Acionista Menor (assistido/representado)"},
{"codigo": "37", "descricao" : "Sócio Pessoa Jurídica Domiciliado no Exterior"},
{"codigo": "38", "descricao" : "Sócio Pessoa Física Residente ou Domiciliado no Exterior"} 
]

As you can see, I have a 'code' and a 'description'. I need to load this dropDownlist with this json , where it is located in a directory of my application ('web / js / json / example.json').

    
asked by anonymous 01.11.2018 / 20:09

1 answer

0

You can use the decode () function to convert the String json to an Array, and then use the ArrayHelper to map the array to "chave" => "valor" (which is the format accepted by select).

<?php 
$json = [
{"codigo": "05", "descricao" : "Administrador"},
{"codigo": "10", "descricao" : "Diretor"},
{"codigo": "16", "descricao" : "Presidente"},
{"codigo": "22", "descricao" : "Sócio"},
{"codigo": "29", "descricao" : "Sócio ou Acionista Incapaz ou Relativamente Incapaz (exceto menor)"},
{"codigo": "30", "descricao" : "Sócio ou Acionista Menor (assistido/representado)"},
{"codigo": "37", "descricao" : "Sócio Pessoa Jurídica Domiciliado no Exterior"},
{"codigo": "38", "descricao" : "Sócio Pessoa Física Residente ou Domiciliado no Exterior"} 
];
echo Html::activeDropDownList($model, 'atributo',
      ArrayHelper::map(yii\helpers\Json::decode($json), 'codigo', 'descricao')); 
?>
    
06.11.2018 / 15:09