Laravel 9 saves JSON format data into MySQL database; In this tutorial, we will learn how to insert/save/store JSON data into MySQL using laravel 9 apps.
This tutorial will guide you step by step on how to insert/store JSON format data in a database using laravel app. And also guide how to convert string form data to JSON format data in the database using laravel.
How to Store/Insert JSON Data in Database MySQL using Laravel 9
Just follow below following steps to store/insert your JSON format data to MySQL database using laravel 9:
- Step 1: Install Laravel Latest Setup
- Step 2: Setup Database
- Step 3: Generate migration and model
- Step 4: Migrate Database
- Step 5: Add Route
- Step 6: Create controller
- Step 7: Create blade view
- Step 8: Start Development Server
Step 1: Install Laravel Latest Setup
First of all, you need to download laravel fresh setup name Laravel Json to insert or store data into laravel DB app. So, use the below command and download fresh new laravel setup:
composer create-project --prefer-dist laravel/laravel LaravelJson
Step 2: Setup Database
In this step, add the database details in the .env file. So Navigate to your project root directory and open .env file. Then set up database credentials into it:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Step 3: Migrate Database
Run the following command on the terminal to migrate tables into the database:
php artisan migrate
Step 4: Generate migration and model
In this step, you need to generate one migration file with create one model name Test using the below command :
php artisan make:model Test -m
After creating the model and migration file. Go to app/database/migration and find the migration file name create_tests_table.php and update the following code into it:
public function up()
{
Schema::create('tests', function (Blueprint $table) {
$table->increments('id');
$table->string('token')->nullable();
$table->text('data')->nullable();
$table->timestamps();
});
}
Now you need to run the below command. It will create some tables in our database, so use the below command :
php artisan migrate
Step 5: Add Route
In this step, you need to create two routes in the web.php file for one is display form and the second route is to store data in JSON to MySQL database. Go to the app/routes/web.php file and create the below routes here :
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\JsonController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('laravel-json', [JsonController::class, 'index']); Route::post('store-json', [JsonController::class, 'store']);
Step 6: Create Controller
In this step, you need to create one controller named JsonController.php. So use the below command and create a controller :
php artisan make:controller JsonController
After successfully creating the controller, go to app/http/controllers directory and open JsonController.php file.
Then create two methods in controller class. The first method displays the form and second method converts laravel string form data to JSON format and saves it to the database:
<?php
namespace App\Http\Controllers;
use Redirect,Response;
use Illuminate\Http\Request;
use App\Models\Test;
class JsonController extends Controller
{
public function index()
{
return view('json_form');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required',
'mobile_number' => 'required'
]);
$data = $request->only('name','email','mobile_number');
$test['token'] = time();
$test['data'] = json_encode($data);
Test::insert($test);
return Redirect::to("laravel-json")->withSuccess('Great! Successfully store data in json format in datbase');
}
}
Step 7: Create Blade view
In this step, you need to create one blade view name json_form.blade.php let go to resources/views and create one blade view file.
After creating blade view file put the below code here :
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>Laravel Store Data To Json Format In Database - Tutsmake.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<style>
.error{ color:red; }
</style>
</head>
<body>
<div class="container">
<h2 style="margin-top: 10px;">Laravel Store Data To Json Format In Database - Tutsmake.com</h2>
<br>
<br>
@if ($errors->any())
@foreach ($errors->all() as $error)
{{ $error }}
@endforeach
@endif
@if ($message = Session::get('success'))
{{ $message }}
@endif
<form id="laravel_json" method="post" action="{{url('store-json')}}">
@csrf
<div class="form-group">
<label for="formGroupExampleInput">Name</label>
<input type="text" name="name" class="form-control" id="formGroupExampleInput" placeholder="Please enter name">
</div>
<div class="form-group">
<label for="email">Email Id</label>
<input type="text" name="email" class="form-control" id="email" placeholder="Please enter email id">
</div>
<div class="form-group">
<label for="mobile_number">Mobile Number</label>
<input type="text" name="mobile_number" class="form-control" id="mobile_number" placeholder="Please enter mobile number">
</div>
<div class="form-group">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</form>
</div>
</body>
</html>
Step 8: Start Development Server
Finally, Run the following command to to start development server. So use the php artisan serve command and start your server :
php artisan serve If you want to run the project diffrent port so use this below command php artisan serve --port=8080
Now you are ready to run our laravel JSON data stored to database example so run the below command to quick run.
http://localhost:8000/
Or direct hit in your browser
http://localhost/LaravelJson/public
Conclusion
In this laravel tutorial for store JSON data in the database, you have successfully laravel project stored data in JSON format in our database. our examples run quickly.
Recommended Laravel Tutorials
If you have any questions or thoughts to share, use the comment form below to reach us.