Laravel Crud
You need to installed xampp and composer.After That:
from command prompt type:
1)composer create-project laravel/laravel laravelproject --prefer-dist
2)cd laravelproject
create a database from phpmyadmin
=============================================================
.env file modified section code —database name :db,username : root,password :<none>)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db
DB_USERNAME=root
DB_PASSWORD=
============================================================
3)php artisan make:migration create_pages_table --create=pages
Table Migration Code for newly genarated for me(database\migrations\2022_01_29_074927_create_pages_table.php)
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreatePagesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('pages', function (Blueprint $table) { $table->id(); $table->string('title', 255)->nullable(); $table->string('content', 500)->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('pages'); } }
4)php artisan migrate
5)php artisan make:controller PageController --resource --model=Page
6)php artisan serve
Excute the below url
7)http://127.0.0.1:8000/pages
routes/web.php code:
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PageController; /* |-------------------------------------------------------------------------- | 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('/', function () { return view('welcome'); }); Route::resource('pages', PageController::class);
Page Controller code(app\Http\Controllers\PageController.php:
<?php namespace App\Http\Controllers; use App\Models\Page; use Illuminate\Http\Request; class PageController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $pages = Page::latest()->paginate(5); return view('pages.index', compact('pages')) ->with('i', (request()->input('page', 1) - 1) * 5); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { return view('pages.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'title' => 'required', 'content' => 'required' ]); Page::create($request->all()); return redirect()->route('pages.index') ->with('success', 'Page created successfully.'); } /** * Display the specified resource. * * @param \App\Models\Page $page * @return \Illuminate\Http\Response */ public function show(Page $page) { return view('pages.show', compact('page')); } /** * Show the form for editing the specified resource. * * @param \App\Models\Page $page * @return \Illuminate\Http\Response */ public function edit($id) { $page = Page::findOrFail($id); return view('pages.edit', compact('page')); } /** * Update the specified resource in db. */ public function update(Request $request, $id) { $updateData = $request->validate([ 'title' => 'required|max:255', 'content' => 'required|max:255' ]); Page::whereId($id)->update($updateData); return redirect('/pages')->with('completed', 'Page has been updated'); } /** * Remove the specified resource from storage. * * @param \App\Models\Page $page * @return \Illuminate\Http\Response */ public function destroy(Page $page) { $page->delete(); return redirect()->route('pages.index') ->with('success', 'Page deleted successfully'); }
}
Model Code(app\Models\Page.php)
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Page extends Model { use HasFactory; protected $table = 'pages'; public $timestamps = true; protected $fillable = [ 'title', 'content', 'created_at' ]; }
Layout Page code:
(resources\views\Layouts\app.blade.php)
<html> <head> <title>App Name - @yield('title')</title> <!-- Bootstrap --> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/js/fontawesome.min.js" integrity="sha512-vF2g7ozd8M2AA8re3eCrfJT2vvrOmIbW9JhodInQHN5Xjg6ec6nJpMJQcwuXm+aOhQze+CrM2rFQLftMtQA+bA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/js/solid.min.js" integrity="sha512-3RL8b8DzLgnLRl3QbkLVPu3d2rRa9WZyEWOHMjQlh4CZ9QWKNX06ugUS79SeAgO1/qs5JpqkJWLU5GD3V/yTRA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> </head> <body> @section('sidebar') @show <div class="container" style="margin-top:200px;"> @yield('content') </div> </body> </html>
resources\views\Pages\index.blade.php page code
@extends('layouts.app') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Pages </h2> </div> <div class="pull-right"> <a class="btn btn-success" href="{{ route('pages.create') }}" title="Create a Page"> Add Page</i> </a> </div> </div> </div> @if ($message = Session::get('success')) <div class="alert alert-success"> <p>{{ $message }}</p> </div> @endif <table class="table table-bordered table-responsive-lg"> <tr> <th>No</th> <th>Title</th> <th>Content</th> <th>Date Created</th> <th>Actions</th> </tr> @foreach ($pages as $page) <tr> <td>{{ $page->id}}</td> <td>{{ $page->title}}</td> <td>{{ $page->content}}</td> <td>{{ $page->created_at}}</td> <td> <form action="{{ route('pages.destroy', $page->id) }}" method="POST"> <a href="{{ route('pages.show', $page->id) }}" title="show"> <i class="fas fa-eye text-success fa-lg"></i> </a> <a href="{{ route('pages.edit', $page->id) }}"> <i class="fas fa-edit fa-lg"></i> </a> @csrf @method('DELETE') <button type="submit" title="delete" style="border: none; background-color:transparent;"> <i class="fas fa-trash fa-lg text-danger"></i> </button> </form> </td> </tr> @endforeach </table> {!! $pages->links() !!} @endsection resources\views\Pages\show.blade.php page code @extends('layouts.app') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Show Page</h2> </div> <div class="pull-right"> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Title:</strong> {{$page->title}} </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Content</strong> {{$page->content}} </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Date Created</strong> {{$page->created_at}} </div> </div> </div> @endsection
resources\views\Pages\create.blade.php page code
@extends('layouts.app') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Add New Page</h2> </div> <div class="pull-right"> </div> </div> </div> @if ($errors->any()) <div class="alert alert-danger"> <strong>Error!</strong> <ul> @foreach ($errors->all() as $error) <li></li> @endforeach </ul> </div> @endif <form action="{{ route('pages.store') }}" method="post" > @csrf <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Title:</strong> <input type="text" name="title" class="form-control" placeholder="Name"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Content:</strong> <textarea class="form-control" style="height:50px" name="content" placeholder="description"></textarea> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12 text-center"> <button type="submit" class="btn btn-primary">Submit</button> </div> </div> </form> @endsection
resources\views\Pages\edit.blade.php page code
@extends('layouts.app') @section('content') <div class="row"> <div class="col-lg-12 margin-tb"> <div class="pull-left"> <h2>Edit Page</h2> </div> <div class="pull-right"> </div> </div> </div> @if ($errors->any()) <div class="alert alert-danger"> <strong>Error!</strong> <ul> @foreach ($errors->all() as $error) <li></li> @endforeach </ul> </div> @endif <form method="post" action="{{ route('pages.update', $page->id) }}" > @csrf @method('PUT') <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Name:</strong> <input type="text" name="title" value="{{ $page->title }}" class="form-control" placeholder="Name"> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12"> <div class="form-group"> <strong>Description</strong> <textarea class="form-control" style="height:50px" name="content" placeholder="description">{{ $page->content }}</textarea> </div> </div> <div class="col-xs-12 col-sm-12 col-md-12 text-center"> <button type="submit" class="btn btn-primary">Submit</button> </div> </div> </form> @endsection