Как преобразовать данные JSON в файл JSON в Laravel 5.6 - PullRequest
0 голосов
/ 08 октября 2018

Мне нужно преобразовать данные JSON в файл .json.Я анализирую данные в array of json в этом коде

$movies = Movie::all();
return response()->json($movies);

Мне нужно создать movies.json файл.Где мой файл должен быть, какая папка?И как к этому?

Ответы [ 4 ]

0 голосов
/ 17 июня 2019

Это простой способ

use File 
File::put(public_path('/upload/json/'.$fileName),$data);

$ fileName - это имя файла.$ data - это данные, которые вы хотите сохранить в этом файле.

0 голосов
/ 08 октября 2018

используйте

use Illuminate\Support\Facades\Storage;

, а затем

Storage::disk('public')->put('movies.json', response()->json($movies));

, и этот файл будет сохранен в общей папке

0 голосов
/ 08 октября 2018

в вашем web.php

Route::get('/download','MoviesController@downloadJSON')->name('download_movies');

вставьте код ниже в вашем контроллере:

 public function downloadJSON(Request $request){
         $table = Movie::all();
         $filename = "movies.json";
         $handle = fopen($filename, 'w+');
         fputs($handle, $table->toJson(JSON_PRETTY_PRINT));
         fclose($handle);
         $headers = array('Content-type'=> 'application/json');
         return response()->download($filename,'movies.json',$headers);
    }

подробнее о Загрузка ответа

0 голосов
/ 08 октября 2018

В зависимости от того, что вы хотите создать файл на сервере, возможно, вы можете использовать функции хранения файлов в Laravel следующим образом:

use Illuminate\Support\Facades\Storage;

$movies = Movie::all();
Storage::put('Movies.json', $movies);
return true;

В будущем, если вы хотите предложить егоВ качестве загрузки вы можете создать ответный макрос.Я сделал то же самое для загрузки в формате HTML

Файл: App \ Providers \ AppServiceProvider @ boot

\Response::macro('attachment', function ($content) {

            $headers = [
                'Content-type' => 'text/json',
                'Content-Disposition' => "attachment; filename='Movies.json'",
            ];

            return \Response::make($content, 200, $headers);

        });

И назовите его как

return response()->attachment($movies); //App\Providers\AppServiceProvider
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...