From 6767f6758c0d70492e85a73ad4360c2615e6958a Mon Sep 17 00:00:00 2001 From: Anugrah Sandi Date: Fri, 8 Nov 2019 09:50:01 +0700 Subject: [PATCH] Aplikasi E-Commerce Laravel 6 #7: Filter & Product Detail --- .../Controllers/Ecommerce/FrontController.php | 15 ++- app/Http/View/CategoryComposer.php | 15 +++ app/Providers/AppServiceProvider.php | 3 +- resources/views/ecommerce/product.blade.php | 9 +- resources/views/ecommerce/show.blade.php | 122 ++++++++++++++++++ routes/web.php | 2 + 6 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 app/Http/View/CategoryComposer.php create mode 100644 resources/views/ecommerce/show.blade.php diff --git a/app/Http/Controllers/Ecommerce/FrontController.php b/app/Http/Controllers/Ecommerce/FrontController.php index 394edc4..24ec388 100644 --- a/app/Http/Controllers/Ecommerce/FrontController.php +++ b/app/Http/Controllers/Ecommerce/FrontController.php @@ -18,7 +18,18 @@ public function index() public function product() { $products = Product::orderBy('created_at', 'DESC')->paginate(12); - $categories = Category::with(['child'])->withCount(['child'])->getParent()->orderBy('name', 'ASC')->get(); - return view('ecommerce.product', compact('products', 'categories')); + return view('ecommerce.product', compact('products')); + } + + public function categoryProduct($slug) + { + $products = Category::where('slug', $slug)->first()->product()->orderBy('created_at', 'DESC')->paginate(12); + return view('ecommerce.product', compact('products')); + } + + public function show($slug) + { + $product = Product::with(['category'])->where('slug', $slug)->first(); + return view('ecommerce.show', compact('product')); } } diff --git a/app/Http/View/CategoryComposer.php b/app/Http/View/CategoryComposer.php new file mode 100644 index 0000000..55bfcd0 --- /dev/null +++ b/app/Http/View/CategoryComposer.php @@ -0,0 +1,15 @@ +withCount(['child'])->getParent()->orderBy('name', 'ASC')->get(); + $view->with('categories', $categories); + } +} \ No newline at end of file diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ee8ca5b..362fc15 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { @@ -23,6 +24,6 @@ public function register() */ public function boot() { - // + View::composer('ecommerce.*', 'App\Http\View\CategoryComposer'); } } diff --git a/resources/views/ecommerce/product.blade.php b/resources/views/ecommerce/product.blade.php index 123d672..ddb6be2 100644 --- a/resources/views/ecommerce/product.blade.php +++ b/resources/views/ecommerce/product.blade.php @@ -62,6 +62,9 @@ @empty +
+

Tidak ada produk

+
@endforelse @@ -72,13 +75,13 @@

Kategori Produk

-