This article provides a comprehensive, step-by-step guide to building a Laravel CRUD (Create, read, update, delete) application, specifically for managing employee data. Here is a recap of the steps involved:
1. Create a Laravel Project
-
Install Laravel using the following command:
composer create-project --prefer-dist laravel/laravel laravel-crud
2. Setup MySQL Database
-
Create a database (e.g.,
Laravel-crud) in PHPMyAdmin or through a MySQL client. -
Configure the database connection in
.envfile:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel-crud DB_USERNAME=root DB_PASSWORD=
3. Create Migration for Employees Table
-
Create the migration file:
php artisan make:migration create_employees_table --create=employees -
Define the schema in the migration:
public function up() { Schema::create('employees', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email'); $table->integer('age'); $table->integer('salary'); $table->timestamps(); }); } -
Run the migration:
php artisan migrate
4. Create Model
-
Create a model for the employees' table:
php artisan make:model Employee -
Define the
$fillableproperty in theEmployeemodel:protected $fillable = ['name', 'email', 'age', 'salary'];
5. Create Controller and Routes
-
Create a resource controller for employees:
php artisan make:controller EmployeeController --resource -
Register routes for the
EmployeeControllerinroutes/web.php:Route::resource('employees', 'EmployeeController');
6. Configure Bootstrap
-
Install
laravel/uipackage for Bootstrap scaffolding:composer require laravel/ui php artisan ui bootstrap npm install npm run dev
7. Create the Layout
-
Create a
layout.blade.phpfile inresources/views/for common layout:<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Laravel 8 CRUD</title> <link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css" /> </head> <body> <div class="container"> @yield('content') </div> <script src="{{ asset('js/app.js') }}" type="text/js"></script> </body> </html>
8. Implement the Create Operation
-
Create the
create.blade.phpform for adding employees. -
In the
EmployeeController, add thecreate()method to return the form:public function create() { return view('employees.create'); } -
In
store()method, save the employee data:public function store(Request $request) { $employeeData = $request->validate([ 'name' => 'required', 'email' => 'required', 'age' => 'required', 'salary' => 'required' ]); Employee::create($employeeData); return redirect('employees')->with('success', 'Employee created successfully.'); }
9. Implement the Read Operation
-
In
index()method, retrieve and display all employees:public function index() { $employees = Employee::all(); return view('employees.index', compact('employees')); } -
Display the employee data in
index.blade.phpwith action buttons to edit and delete.
10. Implement the Update Operation
-
Create
edit.blade.phpfor editing employee details. -
In
edit()method, load the employee details:public function edit($id) { $employee = Employee::findOrFail($id); return view('employees.edit', compact('employee')); } -
In
update()method, update employee details:public function update(Request $request, $id) { $employeeData = $request->validate([ 'name' => 'required', 'email' => 'required', 'age' => 'required', 'salary' => 'required' ]); $employee = Employee::findOrFail($id); $employee->update($employeeData); return redirect('employees')->with("success", "Employee details updated successfully."); }
11. Implement the Delete Operation
-
In
destroy()method, delete the employee:public function destroy($id) { $employee = Employee::findOrFail($id); $employee->delete(); return redirect('employees')->with("success", "Employee deleted successfully."); }
12. EmployeeController.php
-
The full
EmployeeControllercontains all the methods for CRUD operations (index, create, store, edit, update, destroy).
Now, run the Laravel development server:
php artisan serve
Visit http://127.0.0.1:8000/employees to see the CRUD operations in action.
This covers all the necessary steps to build a complete CRUD application in Laravel!
