This laravel tutorial help to add CRUD operation with datatable, I will just share laravel code to create a new record, edit a record and delete a record.
I have already shared How To Use jQuery Datatable With Laravel. We have integrated jQuery datatable with laravel.
We will cover the following functionality in this laravel tutorial :
As discussed earlier in this tutorial, I am extending My Previous tutorial.
Let’s create a new record functionality in this tutorial. We will add route entry, create a new view file and add logic to handle saving records into the database.
Step 1: Create a new create.blade.php
file into resources/view/emp
folder. We will add the below code into this file :
@extends('layouts.master') @section('content') <div class="main-content-inner"> <div class="page-content"> <div class="col-xs-12"> <h3 class="header smaller lighter blue">Add Employee</h3> <form accept-charset="UTF-8" action="{{ route('emp.store')}}" method="post"> <div class="col-md-12"> <div class="form-area"> <div class="alert alert-success hide"> </div> <input name="_token" type="hidden" value="{{ csrf_token() }}"> <div class="alert alert-danger hide"> </div> <div class="form-group"><input id="employee_name" class="form-control" name="employee_name" type="text" value="{{ old('employee_name') }}" placeholder="Name"> @if ($errors->has('name')) @endif</div> <div class="form-group"><input id="employee_salary" class="form-control" name="employee_salary" pattern="[0-9]*" type="number" placeholder="Salary Number"></div> <div class="form-group"><input id="employee_age" class="form-control" name="employee_age" type="number" placeholder="age"></div> <button id="submit" class="btn btn-primary pull-right" name="submit" type="submit">Add Employee</button></div> </div> </form></div> </div> </div> @stop
Step 2: Create a button to add a new record in index.blade.php
file.
<div class="clearfix well"> <a href="/emp/create" class="btn btn-primary pull-right">Create</a> </div>
When we clicked the above button, we will redirect to add a new record template.
Step 3: Let’s add logic to save record into the database. We will add the below code into the store method in Controllers/EmpController.php
file.
public function store(Request $request) { $data = $this->validate($request, [ 'employee_name' => 'required', 'employee_salary' => 'required|integer', 'employee_age' => 'required|integer' ]); $emp = new Employee([ 'employee_name' => $request->'employee_name'), 'employee_salary'=> $request->get('employee_salary'), 'employee_age'=> $request->get('employee_age') ]); $emp->save(); return redirect('/emp')->with('success', 'Employee has been added into db.'); }
We will create a method to get data and save updated values into the database.
Step 1: Create a method to get particular employee data and send to the edit template.
public function edit($id) { $emp = Employee::find($id); return view('emp.update', compact('emp')); }
Step 2: Create a file update.blade.php
into resources/view/emp
folder. We will add the below code into this file :
@extends('layouts.master') @section('content') <div class="main-content-inner"> <div class="page-content"> <div class="col-xs-12"> <h3 class="header smaller lighter blue">Edit Employee - {{$emp->employee_name}}</h3> <div class="col-md-12"> <div class="form-area"> <form role="form" method="post" action="{{ route('emp.update', $emp->id)}}" accept-charset="UTF-8"> <input name="_method" type="hidden" value="PUT"> <div class="alert alert-success hide"></div> <input name="_token" type="hidden" value="{{ csrf_token() }}"> <div class="alert alert-danger hide"></div> <div class="form-group"> <input type="text" class="form-control" id="name" name="employee_name" value="{{$emp->employee_name}}" placeholder="Name"> </div> <div class="form-group"> <input type="number" pattern="[0-9]*" class="form-control" id="employee_salary" name="employee_salary" value="{{ $emp->employee_salary }}" placeholder="Salary Number"> </div> <div class="form-group"> <input class="form-control" type="number" id="employee_age" name="employee_age" placeholder="age" value="{{ $emp->employee_age }}"> </div> <button type="submit" id="submit" name="submit" class="btn btn-primary pull-right">Update Employee</button> </form> </div> </div> </div> </div> </div> @stop
Step 3: Create a button to edit data from index.blade.php
file.
<!-- edit this nerd (uses the edit method found at GET /nerds/{id}/edit --> <a class="btn btn-small btn-info" href="{{ URL::to('emp/' . $emp->id . '/edit')}}">Edit</a>
When we clicked the above button, we will redirect to edit the new record template.
Step 4: We will add the below code into update()
method under Controllers/EmpController.php
file. This method is responsible to update data into the database.
public function update(Request $request, $id) { $data = $this->validate($request, [ 'employee_name'=>'required', 'employee_salary'=> 'required|integer', 'employee_age' => 'required|integer' ]); $emp = Employee::find($id); $emp->employee_name = $request->get('employee_name'); $emp->employee_salary = $request->get('employee_salary'); $emp->employee_age = $request->get('employee_age'); $emp->save(); return redirect('/emp')->with('success', 'Employee has been updated Successfully.'); }
We will add a button to show details of an employee. We will create a method and template to display employee data.
Step 1: Create a method to get particular employee data and send it to show template,
public function show($id) { $emp = Employee::find($id); return view('emp.show', compact('emp')); }
Step 2: Create a file show.blade.php
into resources/view/emp
folder. We will add the below code into this file :
@extends('layouts.master') @section('content') <div class="main-content-inner"> <div class="page-content"> <div class="col-xs-12"> <h3 class="header smaller lighter blue">Employee Data - {{$emp->employee_name}}</h3> <div class="profile-user-info profile-user-info-striped"> <div class="profile-info-row"> <div class="profile-info-name"> Name</div> <div class="profile-info-value"> {{$emp->employee_name}} </div> </div> <div class="profile-info-row"> <div class="profile-info-name"> Age</div> <div class="profile-info-value"> {{$emp->employee_age}} </div> </div> <div class="profile-info-row"> <div class="profile-info-name"> Salary</div> <div class="profile-info-value"> {{$emp->employee_salary}} </div> </div> </div> <div> </div> </div> </div> </div> @stop
Step 3: Add a button to display data, we will add the below button into index.blade.php
file.
<a class="btn btn-small btn-success" href="{{ URL::to('emp/' . $emp->id) }}">Show</a>
Now, Implements delete record functionality into laravel.
Step 1: Add a button to delete data, we will add the below button into index.blade.php
file.
<a class="btn btn-small btn-success" href="{{ URL::to('emp/' . $emp->id) }}">Show</a>
Step 2: Delete method to remove particular employee data from a database.
public function destroy($id) { $emp = Employee::find($id); $emp->delete(); return redirect('/emp')->with('success', 'Employee has been deleted Successfully.'); }
This tutorial helps integrate a PHP SDK with Laravel. We'll install aws-php-sdk into laravel application and access all aws services… Read More
in this quick PHP tutorial, We'll discuss php_eol with examples. PHP_EOL is a predefined constant in PHP and represents an… Read More
This Laravel tutorial helps to understand table Relationships using Elequonte ORM. We'll explore laravel table Relationships usage and best practices… Read More
We'll explore different join methods of Laravel eloquent with examples. The join helps to fetch the data from multiple database… Read More
in this Laravel tutorial, We'll explore valet, which is a development environment for macOS minimalists. It's a lightweight Laravel development… Read More
I'll go through how to use soft delete in Laravel 10 in this post. The soft deletes are a method… Read More