Laravel 11 Store JSON Format Data in Database

Laravel 11 insert or store JSON format data into MySQL database; Through this tutorial, i am going to show you how to store JSON data into MySQL using Laravel 11 apps.

Laravel 11 Store JSON Format Data in Database

Follow the below given steps to store/insert your JSON format data into MySQL database using Laravel 11 apps:

  • Step 1: Install Laravel 11 Setup
  • Step 2: Configure Database
  • Step 3: Generate migration and model
  • Step 4: Add Route
  • Step 5: Create controller
  • Step 6: Create blade view
  • Step 7: Start Development Server

Step 1: Install Laravel 11 Setup

Run the following command on command prompt to download fresh new laravel setup:

composer create-project --prefer-dist laravel/laravel LaravelJson

Step 2: Configure Database

To add the database details in the .env file. So Navigate to your project root directory and open .env file. Then set up database credential 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: Generate migration and model

Run the following command to generate one migration file with create one model name Test:

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 4: Add Route

To create two routes in web.php file for one is display form and second route is store data in json to mysql database . Go to app/routes/web.php file and create 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

Run the following command on command prompt to create a controller file:

php artisan make:controller JsonController 

After successfully create controller go to app/http/controllers open JsonController and create two method here. First method display the form and second method convert laravel string form data to json format and save it to database:

Note that, if you are using laravel 8.x and 9.x version, so you should use Model on your controller file like this:

use App\Models\Test;

Or if you are using lower version like 7.x, 6.x, 5.x of laravel, so you should use Model on your controller file like this:

use App\Test;
<?php
namespace App\Http\Controllers;
use Redirect,Response;
use Illuminate\Http\Request;
class JsonController extends Controller
{
   public function index()
   {
      return view('json_form');
   }  
  public function store(Request $request)
  {
      $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

To create one blade view name json.blade.php let go to resources/views and create one blade view file.

After create 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 - Laratutorials.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 - Laratutorials.com</h2>
    <br>
    <br>
    @if ($message = Session::get('success'))
    <div class="alert alert-success alert-block">
        <button type="button" class="close" data-dismiss="alert">×</button>
          <strong>{{ $message }}</strong>
    </div>
    <br>
    @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

Run the following command on command prompt to start development 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 datbase example so run below command to quick run.

 http://localhost:8000/
Or direct hit in your browser
http://localhost/LaravelJson/public

Conclusion

Through this tutorial, you have successfully laravel project stored data in JSON format in our database. our examples run quickly.

Recommended Laravel Tutorials

Leave a Comment