প্রথমে লারাভেল এর project তৈরী করতে হবে। এ জন্য কমান্ড প্রম্প এ blog নাম এ একটি প্রজেক্ট তৈরী করার জন্য এই কোড টি লিখে এন্টার করি।
composer create-project --prefer-dist laravel/laravel blog
এবার আমাদের ডাটাবেস এর কনফিগার অনুযায়ী আমাদের প্রজেক্ট এর মেইন ফোল্ডার এ .env ফাইল এ ডাটাবেস এর ইনফরমেশন দিতে হবে যেমন আমার ডাটাবেস এর ইউআরএল ,উজারনেম,পাসওয়ার্ড,,ডাটাবেস নাম ইত্যাদি।
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=root
Route.php
Route::resource('/student', 'StudentController');
Create a student controller ,model,migration File
php artisan make:model Student -mcr
Student.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
//
protected $table = "students";
protected $fillable = ['name','roll','class'];
}
StudentController.php
<?php
namespace App\Http\Controllers;
use App\Student;
use Illuminate\Http\Request;
class StudentController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data = Student::all();
return view('student.index',compact('data'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view ('student.save');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$validatedData = $request->validate([
'name'=>'required|max:255',
'roll'=>'required',
'class'=>'required'
]);
$show = Student::create($validatedData);
return redirect('/student')->with('successs','Student Added');
}
/**
* Display the specified resource.
*
* @param \App\Student $student
* @return \Illuminate\Http\Response
*/
public function show(Student $student)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Student $student
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
$studentedit = Student::findOrFail($id);
return view('student.edit')->with('data',$studentedit);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Student $student
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
$validatedData = $request->validate([
'name'=>'required',
'roll'=>'required',
'class'=>'required'
]);
$studentupdate = Student::whereId($id)->update($validatedData);
return redirect('/student')->with('success','Data is successfully updated');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Student $student
* @return \Illuminate\Http\Response
*/
public function destroy( $id)
{
//
$deleteid = Student::findOrFail( $id);
$deleteid->delete();
return redirect('/student')->with('success','Data is successfully Deleted');
}
}
Migration File
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStudentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('roll');
$table->string('class');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('students');
}
}
Layout View File under student folder resource/view/student/
layout.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
index.blade.php
@extends('student.layout')
@section('content')
<div class="row">
<a href="/student/create">Aadd Students</a>
<div class="col-md-12 margin-tb">
<table class="table-responsive table-bordered">
<thead>
<th>Id</th>
<th>Name</th>
<th>Roll</th>
<th>Class</th>
<th>aAction</th>
</thead>
<tbody>
@foreach ($data as $row)
<tr><td>{{$row->id}}</td>
<td>{{$row->name}}</td>
<td>{{$row->roll}}</td>
<td>{{$row->class}}</td>
<td><a href="{{route('student.edit',$row->id)}}">Edit</a></td>
<td> <form action="{{route('student.destroy',$row->id)}}" method="post">
@csrf
@method('DELETE') <button class="btn btn-danger" type="submit">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
save.blade.php
@extends ('student.layout')
@section('content')
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div><br />
@endif
<form action="{{route('student.store')}}" method="post">
@csrf
<div class="form-group">
@csrf
<label for="name">Name:</label>
<input type="text" id="name" class="form-control" name="name"/>
</div>
<div class="form-group">
<label for="roll">Roll :</label>
<input type="text" id='roll' class="form-control" name="roll"/>
</div>
<div class="form-group">
<label for="roll">Class :</label>
<input type="text" id='roll' class="form-control" name="class"/>
</div>
<button type="submit" class="btn btn-primary">Add Data</button>
</form>
</form>
@endsection
edit.blade.php
@extends('student.layout')
@section('content')
<div class="row">
<div class="col-md-12">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div><br />
@endif
<form action="{{route('student.update',$data->id)}}" method="post">
@csrf
@method('PATCH')
<div class="form-group">
<label for="name">Name</label>
<input id="name" class="form-control" type="text" name="name" value="{{$data->name}}">
</div>
<div class="form-group">
<label for="roll">Roll</label>
<input id="roll" class="form-control" type="text" name="roll" value="{{$data->roll}}">
</div>
<div class="form-group">
<label for="class">Class</label>
<input id="class" class="form-control" type="text" name="class" value="{{$data->class}}">
</div>
<button class="btn btn-primary" type="submit">Update</button>
</form>
</div>
</div>
@endsection