#php #json #laravel
Вопрос:
У меня есть файл json, подобный приведенному ниже:
[
{
"Region": "Naypyitaw Union Territory",
"Town ": "Za Bu Thi Ri Township",
"Quarter ": "Zay Ya Theik Di Quarter",
"Postal Code": 1501001
},
{
"Region": "Naypyitaw Union Territory",
"Town ": "Za Bu Thi Ri Township",
"Quarter ": "Pyin Nyar Theik Di Quarter",
"Postal Code": 1501002
}]
В моем контроллере я передал файл, подобный приведенному ниже:
public function create()
{
$jsonString = file_get_contents(base_path('resources/data/address.json'));
$details = json_decode($jsonString, true);
return view('users.create')->with('details', $details);
}
В моем create.blade.php файл Я хочу, чтобы выпадающие меню отображали регион, город, квартал и почтовый индекс в зависимости от выбора пользователя. Например. Если пользователь выбирает регион как «Территория Союза Нейпьито», то пользователь должен иметь возможность привязать город к этому региону.
Но я не знаю, как пройти через это.
<select name="region" id="">
foreach
<option value="">{{$details->Region}}</option>
endforeach
</select>
Комментарии:
1. это можно сделать с помощью ajax или в javascript
2. laravel.com/docs/8.x/blade#loops и поскольку вы используете
true
в качестве 2-го параметраjson_decode
, вы получаете доступ к данным в виде массива, а не объекта, например$details['Region']
Ответ №1:
Просто получите доступ к декодированному JSON в виде массива и выполните итерацию по нему, используя теги блейда:
<select name="region" id="">
@foreach($details as $detail)
<option value="">{{$detail['Region']}}</option>
@endforeach
</select>
Комментарии:
1. это работает. Спасибо. Но как я могу отфильтровать из него уникальные значения?
2. Хорошо. Я понял. Сначала я использую array_push в array_unique в контроллере. цикл, как вы упомянули в blade.php