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
Initialize the employee number, Hourswork,and Hoursrate to calculate a grosswage use the following condition. if…
Act as a Java developer to create a program that calculates the gross wage for…
Initialize the employee number, Hourswork,and Hoursrate to calculate a grosswage use the following condition. if…
In this tutorial, we will teach you how to create a simple school management system…
I have design the Admin Basic templete using React MUI Design Admin Dashboard and Login.Here…
In this tutorial ,i am to going teach the Laravel Breeze.Laravel Breeze provides a simple…