Передача данных json в блейд-представление с контроллера

#php #json #laravel

Вопрос:

Я загружаю файл json из папки ресурсов ресурсы/данные/пример.json

 public function __construct()
{
    // Load json file 
    $path = base_path('resources/data/rooms.json');
    $content = file_get_contents($path);
    $data = json_decode($content);
}
 

мой файл json выглядит так, это простой файл только для примера: [ { "id":"bicycle", "category":"vehicle", "name":"Bicycle One", "images":[ "/img/bike_slider_1.jpg", "/img/bike_slider_2.jpg" ], },

итак, теперь мне интересно, как я могу передать некоторые из этих данных в представление, например bikes.blade.php который выглядит примерно так: @extends('layouts.default') @section('content') <main>{{ content[1] }}</main>

любая помощь будет оценена по достоинству 🙂

Ответ №1:

     public function index()
    {
        // Load json file 
        $path = base_path('resources/data/rooms.json');
        $content = file_get_contents($path);
        $data = json_decode($content);
    
        return view('bikes', [
                'items' => $data,
            ]);
    }
 

Внутреннее лезвие

 @foreach ($items as $item) 
    {{ $item->name }}
@endforeach
 

Ответ №2:

https://laravel.com/docs/8.x/views#passing-data-to-views

вы можете перейти по этой ссылке. Вы уже преобразуете данные JSON в объект. Теперь просто передайте его с контроллера.

 return view('yourBladeFile')->with('data ', $data );
 

Теперь в файле блейда вы можете прочитать это так:

 @foreach($data as $item)
  <p> {{$item->name}} </p>
@endforeach
 

или другим подходящим для вас способом.