Как я могу использовать файл JSON в laravel blade.php

#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