Laravel is world famous php framework.it has various features.Laravel is a MVC architecture. In this tutorial will see how to make a website with crud operation contact form in Laravel 8.Laravel 8 – CRUD application tutorial with Example. Here is the Best Place to Learn Laravel 8 Articles.
In computer create the folder Laravel Projects.and open the folder. and type the address bar on cmd
Create a new Project type the command on the command prompt . I create the project name basicweb
composer create-project --prefer-dist laravel/laravel basicweb
Change .env File for username, password and DB Name
After that run check the application the welcome screen of Laravel framework look like this.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=basicweb DB_USERNAME=root DB_PASSWORD=
After that run check the application the welcome screen of Laravel framework look like this.
php artisan serve
Create the controller name which is WelcomeController
Create the controller name which is AboutController
Create the controller name which is ServiceController
Create the controller name which is ContactController
php artisan make:controller ContactController --resource php artisan make:controller WelcomeController --resource php artisan make:controller ServiceController –resource php artisan make:controller AboutController –resource
Create a Folder inside the resources-views
welcome.blade.php
Service.blade.php
About.blade.php
Contact.blade.php
layout.blade.php
In Laravel you have create the pages using pagename.blade.php
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> </head> <body> <div class="container"> <div class="jumbotron"> <h1>TutusFunny</h1> </div> <a href="{{ url('/') }}" class="btn btn-warning">Home</a> <a href="{{ url('/about') }}" class="btn btn-warning">About</a> <a href="{{ url('/service') }}" class="btn btn-warning">Service</a> <a href="{{ url('/contact/create') }}" class="btn btn-warning">Contact</a> </div> @yield('content') </br> <div class="card bg-light text-dark"> <div class="card-body">Copyright 2021 tutusfunny.com</div> </div> </body> <html>
@extends("layout") @section('content') <div class="card"> <div class="card-header">Welcome Page</div> <div class="card-body">This Welcome</div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-header">Service Page</div> <div class="card-body">This Service</div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-header">About Page</div> <div class="card-body">This About</div> </div> @stop
then do the Contact form along with the crud opertions
Create a Folder inside the resources-views
inside the views folder create the contacts folder
inside the folder create the following pages
@extends("layout") @section('content') <div class="card"> <div class="card-header">Contactus Page</div> <div class="card-body"> <form action="{{ url('contact') }}" method="post"> {!! csrf_field() !!} <label>Name</label></br> <input type="text" name="name" id="name" class="form-control"></br> <label>Subject</label></br> <input type="text" name="subject" id="subject" class="form-control"></br> <label>Message</label></br> <input type="text" name="message" id="message" class="form-control"></br> <input type="submit" value="Save" class="btn btn-success"></br> </form> </div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-header">Contactus Page</div> <div class="card-body"> @foreach($contacts as $contact) <h4>{{ $contact->name }}</h4> <h6>{{ $contact->subject }}</h6> <p>{{ $contact->message }}</p> <a href="{{ url('contact'). '/' .$contact->id}}" class="btn btn-info">View </a> <a href="{{ url('contact'). '/' .$contact->id. '/edit' }}" class="btn btn-info">Edit </a> </hr> @endforeach </div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-header">Contactus Page</div> <div class="card-body"> <form action="{{ url('contact/' .$contact->id) }}" method="post"> {!! csrf_field() !!} @method("PATCH") <input type="hidden" name="id" id="id" value="{{$contact->id}}" id="id" /> <label>Name</label></br> <input type="text" name="name" id="name" value="{{$contact->name}}" class="form-control"></br> <label>Subject</label></br> <input type="text" name="subject" id="subject" value="{{$contact->subject}}" class="form-control"></br> <label>Message</label></br> <input type="text" name="message" id="message" value="{{$contact->message}}" class="form-control"></br> <input type="submit" value="Update" class="btn btn-success"></br> </form> </div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-header">Contactus Page</div> <div class="card-body"> <h4>{{ $contact->name }}</h4> <h6>{{ $contact->subject }}</h6> <p>{{ $contact->message }}</p> <a href="{{ url('contacts'). '/' .$contact->id}}" class="btn btn-info">View </a> </hr> </div> </div> @stop
@extends("layout") @section('content') <div class="card"> <div class="card-body"> <h2>Thank you for Contact US</h2> </div> </div> </div> @stop
After that Pass All view pages through Controller. you have to add the Model namespace here
use App\Models\Contact; Data is coming from the database via Model.
<?php namespace App\Http\Controllers; use App\Models\Contact; use Illuminate\Http\Request; class ContactController extends Controller { public function index() { $contacts = Contact::all(); return view ('contact.index')->with('contacts', $contacts); } public function create() { return view('contact.create'); } public function store(Request $request) { $input = $request->all(); Contact::create($input); return view('contact.thanks'); } public function show($id) { $contact = Contact::find($id); return view('contact.show')->with('contact', $contact); } public function edit($id) { $contact = Contact::find($id); return view('contact.edit')->with('contact', $contact); } public function update(Request $request, $id) { $contact = Contact::find($id); $input = $request->all(); $contact->update($input); return view('contact.thanks'); } public function destroy($id) { } }
Pages are Manage through routes. If you are crud system simple you can add it the routes one line look like this
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\WelcomeController; use App\Http\Controllers\ServiceController; use App\Http\Controllers\AboutController; use App\Http\Controllers\ContactController; Route::get('/', [WelcomeController::class, 'index']); Route::get('/service', [ServiceController::class, 'index']); Route::get('/about', [AboutController::class, 'index']); Route::resource('/contact', ContactController::class);
Model is used to get the data from the database.
Create the Model name which is Contact
php artisan make:model Contact
After Model is Created the look like this. Code inside Model Class (app\Models\)
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Contact extends Model { protected $table = "contacts"; protected $primarykey = "id"; protected $fillable = ["name","subject","message"]; }
php artisan make:migration create_contacts_table
After that you can check the inside database folder migrations create_contacts_table.php
public function up() { Schema::create('contacts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('subject'); $table->string('message'); $table->timestamps(); }); }
After add the lines type
php artisan migrate
Relationships: Hotel ↔ Rooms (One-to-Many) A hotel can have many rooms, but a room belongs…
Introduction to Grocery Inventory Apps Managing grocery inventory can be a daunting task, but with…
This article explain how to make a Fish Inventory Management App in Angular.this app explain…
Introduction to Fish Inventory Management In the aquaculture industry, managing fish inventory is crucial for…
Introduction to Java GUI CRUD Java is a powerful programming language widely used for building…
Introduction to Login Form Design Designing an effective and beautiful login form is crucial for…