Load a json into a Yii2 Dropdownlist

Asked

Viewed 76 times

0

I recently migrated to the YII 2 framework. And I have a small question: I have a json that I need to popular 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 in a directory of my application ('web/js/json/example.json').

1 answer

0

You can use the function Decode() to convert the json string to an array, and then use 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')); 
?>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.