Laravel E-commerce CRUD
Laravel E-commerce CRUD
Laravel E-commerce CRUD
database/migrations/<timestamp>_create_products_table.php:
After doing the pasting above, run the below command to create the database table:
ProductController:
use App\Models\Product;
use Illuminate\Http\Request;
Product::create($request->all());
return redirect()->route('products.index')->with('success', 'Product created successfully.');
}
$product->update($request->all());
return redirect()->route('products.index')->with('success', 'Product updated successfully.');
}
Route::resource('products', ProductController::class);
Modify the Layouts
1. Create the Layout (resources/views/layouts/app.blade.php):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>E-commerce CRUD</title>
@vite('resources/css/app.css')
</head>
<body class="bg-gray-100 text-gray-800">
<div class="container mx-auto p-4">
@if (session('success'))
<div class="bg-green-200 text-green-800 p-3 rounded mb-4">
{{ session('success') }}
</div>
@endif
@yield('content')
</div>
</body>
</html>
@section('content')
<div class="mb-4">
<h1 class="text-2xl font-bold">Products</h1>
<a href="{{ route('products.create') }}" class="bg-blue-500 text-white px-4 py-2
rounded">Create Product</a>
</div>
@section('content')
<div>
<h1 class="text-2xl font-bold mb-4">Create Product</h1>
<form action="{{ route('products.store') }}" method="POST" class="bg-white p-4 rounded
shadow">
@csrf
<div class="mb-4">
<label class="block text-sm font-medium">Name</label>
<input type="text" name="name" class="border rounded w-full p-2" required>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Description</label>
<textarea name="description" class="border rounded w-full p-2"></textarea>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Price</label>
<input type="number" name="price" step="0.01" class="border rounded w-full p-2"
required>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Stock</label>
<input type="number" name="stock" class="border rounded w-full p-2" required>
</div>
<button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded">Create</button>
</form>
</div>
@endsection
@section('content')
<div>
<h1 class="text-2xl font-bold mb-4">Edit Product</h1>
<form action="{{ route('products.update', $product) }}" method="POST" class="bg-white p-4
rounded shadow">
@csrf
@method('PUT')
<div class="mb-4">
<label class="block text-sm font-medium">Name</label>
<input type="text" name="name" value="{{ $product->name }}" class="border rounded
w-full p-2" required>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Description</label>
<textarea name="description" class="border rounded w-full p-2">{{ $product-
>description }}</textarea>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Price</label>
<input type="number" name="price" step="0.01" value="{{ $product->price }}"
class="border rounded w-full p-2" required>
</div>
<div class="mb-4">
<label class="block text-sm font-medium">Stock</label>
<input type="number" name="stock" value="{{ $product->stock }}"