Laravel Crud

Loading

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>

&nbsp;

<!-- 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> &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{$page->title}}

</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Content</strong> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {{$page->content}}

</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Date Created</strong> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{$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

 


4 1 vote
Article Rating
Subscribe
Notify of

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x