web.php
ProductController.php
products.blade.php
pagination_products.blade.php
use App\Http\Controllers\ProductController; Route::get('/',[ProductController::class,'index'])->name('products'); Route::post('/product/store',[ProductController::class,'store']); Route::post('/product/update',[ProductController::class,'update']); Route::post('/product/delete',[ProductController::class,'delete']); Route::get('/product/pagination',[ProductController::class,'pagination']); Route::get('/product/search',[ProductController::class,'search']);
use App\Models\Product; class ProductController extends Controller { public function index(){ $products = Product::latest()->paginate(5); return view('products',compact('products')); } public function store(Request $request){ $request->validate( [ 'name'=>'required|unique:products', 'price'=>'required', ], [ 'name.required'=>'Name is Required', 'name.unique'=>'Product Already Exists', 'price.required'=>'Price is Required', ] ); $product = new Product(); $product->name = $request->name; $product->price = $request->price; $product->save(); return response()->json([ 'status'=>'success', ]); } public function update(Request $request){ $request->validate( [ 'up_name'=>'required|unique:products,name,'.$request->up_id, 'up_price'=>'required', ], [ 'up_name.required'=>'Name is Required', 'up_name.unique'=>'Product Already Exists', 'up_price.required'=>'Price is Required', ] ); Product::where('id',$request->up_id)->update([ 'name'=>$request->up_name, 'price'=>$request->up_price, ]); return response()->json([ 'status'=>'success', ]); } public function delete(Request $request){ Product::find($request->product_id)->delete(); return response()->json([ 'status'=>'success', ]); } public function pagination(Request $request){ $products = Product::latest()->paginate(5); return view('pagination_products',compact('products'))->render(); } public function search(Request $request){ $products = Product::where('name','like','%'.$request->search_string.'%') ->orWhere('price','like','%'.$request->search_string.'%') ->orderBy('id','desc') ->paginate(3); if($products->count() >= 1){ return view('pagination_products',compact('products'))->render(); }else{ return response()->json([ 'status'=>'nothing_found' ]); } } }
Ajax CRUD
Create
#
Name
Price
Action
@foreach($products as $key=>$product)
{{ $key+1 }}
{{ $product->name }}
{{ $product->price }}
@endforeach
{!! $products->links() !!}
@csrf
Add
Name
Price
@csrf
Update
Name
Price
#
Name
Price
Action
@foreach($products as $key=>$product)
{{ $key+1 }}
{{ $product->name }}
{{ $product->price }}
@endforeach
{!! $products->links() !!}
web.php use App\Http\Controllers\ProductController; Route::get('/',[ProductController::class,'products'])->name('products'); Route::post('/add-product',[ProductController::class,'addProduct'])->name('add.product'); Route::post('/update-product',[ProductController::class,'updateProduct'])->name('update.product'); Route::post('/delete-product',[ProductController::class,'deleteProduct'])->name('delete.product'); Route::get('/pagination/paginate-data',[ProductController::class,'pagination']); Route::get('/search-product',[ProductController::class,'searchProduct'])->name('search.product'); App\Providers\AppServiceProvider.php use Illuminate\Pagination\Paginator; public function boot() { Paginator::useBootstrap(); } database\migrations\products public function up() { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->double('price'); $table->timestamps(); }); } App\Http\Controllers\ProductController.php use App\Models\Product; { public function products(){ $products = Product::latest()->paginate(3); return view('products',compact('products')); } public function addProduct(Request $request){ $request->validate( [ 'name'=>'required|unique:products', 'price'=>'required', ], [ 'name.required'=>'Name is Required', 'name.unique'=>'Product Already Exists', 'price.required'=>'Price is Required', ] ); $product = new Product(); $product->name = $request->name; $product->price = $request->price; $product->save(); return response()->json([ 'status'=>'success', ]); } public function updateProduct(Request $request){ $request->validate( [ 'up_name'=>'required|unique:products,name,'.$request->up_id, 'up_price'=>'required', ], [ 'up_name.required'=>'Name is Required', 'up_name.unique'=>'Product Already Exists', 'up_price.required'=>'Price is Required', ] ); Product::where('id',$request->up_id)->update([ 'name'=>$request->up_name, 'price'=>$request->up_price, ]); return response()->json([ 'status'=>'success', ]); } public function deleteProduct(Request $request){ Product::find($request->product_id)->delete(); return response()->json([ 'status'=>'success', ]); } public function pagination(Request $request){ $products = Product::latest()->paginate(3); return view('pagination_products',compact('products'))->render(); } public function searchProduct(Request $request){ $products = Product::where('name','like','%'.$request->search_string.'%') ->orWhere('price','like','%'.$request->search_string.'%') ->orderBy('id','desc') ->paginate(5); if($products->count() >= 1){ return view('pagination_products',compact('products'))->render(); }else{ return response()->json([ 'status'=>'nothing found' ]); } } } products.blade.php
Ajax CRUD
Add Product
ID
Name
Price
Action
@foreach($products as $key=>$product)
{{ $product->id }}
{{ $product->name }}
{{ $product->price }}
@endforeach
{!! $products->links() !!}
@include('add_product_modal') @include('update_product_modal') @include('product_js') {!! Toastr::message() !!} product_js.blade.php add_product_modal.blade.php
@csrf
Add Product
Product Name
Product Price
update_product_modal.blade.php
@csrf
Update Product
Product Name
Product Price
pagination_products.blade.php
ID
Name
Price
Action
@foreach($products as $key=>$product)
{{ $product->id }}
{{ $product->name }}
{{ $product->price }}
@endforeach
{!! $products->links() !!}