How to create a new route for simple blade view file?
-
Hello, I am trying to create a new route to direct user to this new blade file, its file path is:
packages/webkul/store/src/resource/views/shop_the_look/index.blade.php
the way I write in href:
<li><a href="{{ route('shop.shop_the_look.index') }}">Shop the Look</a></li>
Where and how I defined route:
- packages\Webkul\Shop\src\Http\Controllers\ShopTheLookController.php (also done in new created store package)
Code: <?php namespace Webkul\Shop\Http\Controllers; class ShopTheLookController extends Controller { /** * Address route index page. * * @return \Illuminate\View\View */ public function index() { return view('shop.shop_the_look.index'); } }
- packages\Webkul\Shop\src\Routes\store-front-routes.php (also done in new created store package)
<?php use Illuminate\Support\Facades\Route; use Webkul\Shop\Http\Controllers\CMS\PagePresenterController; use Webkul\Shop\Http\Controllers\CompareController; use Webkul\Shop\Http\Controllers\HomeController; use Webkul\Shop\Http\Controllers\ProductController; use Webkul\Shop\Http\Controllers\ProductsCategoriesProxyController; use Webkul\Shop\Http\Controllers\SearchController; use Webkul\Shop\Http\Controllers\SubscriptionController; use Webkul\Shop\Http\Controllers\ShopTheLookController; Route::group(['middleware' => ['locale', 'theme', 'currency']], function () { /** * CMS pages. */ Route::get('page/{slug}', [PagePresenterController::class, 'presenter']) ->name('shop.cms.page') ->middleware('cacheResponse'); /** * Fallback route. */ Route::fallback(ProductsCategoriesProxyController::class . '@index') ->name('shop.product_or_category.index') ->middleware('cacheResponse'); /** * Store front home. */ Route::get('/', [HomeController::class, 'index']) ->name('shop.home.index') ->middleware('cacheResponse'); /** * Store front search. */ Route::get('search', [SearchController::class, 'index']) ->name('shop.search.index') ->middleware('cacheResponse'); Route::post('search/upload', [SearchController::class, 'upload'])->name('shop.search.upload'); /** * Subscription routes. */ Route::controller(SubscriptionController::class)->group(function () { Route::post('subscription', 'store')->name('shop.subscription.store'); Route::get('subscription/{token}', 'destroy')->name('shop.subscription.destroy'); }); /** * Compare products */ Route::get('compare', [CompareController::class, 'index']) ->name('shop.compare.index') ->middleware('cacheResponse'); /** * Shop the look */ Route::get('shop-the-look', [ShopTheLookController::class, 'index']) ->name('shop.shop_the_look.index'); // ->middleware('cacheResponse'); /** * Downloadable products */ Route::controller(ProductController::class)->group(function () { Route::get('downloadable/download-sample/{type}/{id}', 'downloadSample')->name('shop.downloadable.download_sample'); Route::get('product/{id}/{attribute_id}', 'download')->defaults('_config', [ 'view' => 'shop.products.index', ])->name('shop.product.file.download'); }); });
- routes\breadcrumbs.php
<?php use Diglactic\Breadcrumbs\Breadcrumbs; use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail; // Home Breadcrumbs::for('home', function (BreadcrumbTrail $trail) { $trail->push(trans('shop::app.customers.account.home'), route('shop.home.index')); }); // Home > My Account Breadcrumbs::for('account', function (BreadcrumbTrail $trail) { $trail->parent('home'); $trail->push(trans('shop::app.layouts.my-account'), route('shop.customers.account.profile.index')); }); // Home > My Account > Profile Breadcrumbs::for('profile', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.profile'), route('shop.customers.account.profile.index')); }); // Home > My Account > Profile > Edit Breadcrumbs::for('profile.edit', function (BreadcrumbTrail $trail) { $trail->parent('profile'); $trail->push(trans('shop::app.customers.account.profile.edit'), route('shop.customers.account.profile.index')); }); // Home > My Account > Address Breadcrumbs::for('addresses', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.address'), route('shop.customers.account.addresses.index')); }); // Home > My Account > Address > Create Breadcrumbs::for('addresses.create', function (BreadcrumbTrail $trail) { $trail->parent('addresses'); $trail->push(trans('shop::app.customers.account.addresses.add-address'), route('shop.customers.account.addresses.create')); }); // Home > My Account > Address > Edit Breadcrumbs::for('addresses.edit', function (BreadcrumbTrail $trail, $entity) { $trail->parent('addresses'); $trail->push(trans('shop::app.customers.account.addresses.edit'), route('shop.customers.account.addresses.edit', $entity->id)); }); // Home > My Account > Orders Breadcrumbs::for('orders', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.orders'), route('shop.customers.account.orders.index')); }); Breadcrumbs::for('orders.view', function (BreadcrumbTrail $trail, $entity) { $trail->parent('orders'); $trail->push(trans('shop::app.customers.account.orders.view.title'), route('shop.customers.account.orders.view', $entity->id)); }); // Home > My Account > Downloadable Products Breadcrumbs::for('downloadable-products', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.downloadable-products'), route('shop.customers.account.downloadable_products.index')); }); // Home > My Account > Reviews Breadcrumbs::for('reviews', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.reviews'), route('shop.customers.account.reviews.index')); }); // Home > My Account > Wishlist Breadcrumbs::for('wishlist', function (BreadcrumbTrail $trail) { $trail->parent('account'); $trail->push(trans('shop::app.layouts.wishlist'), route('shop.customers.account.wishlist.index')); }); // Home > Cart Breadcrumbs::for('cart', function (BreadcrumbTrail $trail) { $trail->parent('home'); $trail->push(trans('shop::app.checkout.cart.index.cart'), route('shop.checkout.cart.index')); }); // Home > Checkout Breadcrumbs::for('checkout', function (BreadcrumbTrail $trail) { $trail->parent('home'); $trail->push(trans('shop::app.checkout.onepage.index.checkout'), route('shop.checkout.onepage.index')); }); // Home > Comapre Breadcrumbs::for('compare', function (BreadcrumbTrail $trail) { $trail->parent('home'); $trail->push(trans('shop::app.compare.product-compare'), route('shop.compare.index')); }); // Home > Product Breadcrumbs::for('product', function (BreadcrumbTrail $trail, $entity) { $trail->parent('home'); $trail->push($entity->name, route('shop.product_or_category.index', $entity->url_key)); }); // Home > Shop The Look Breadcrumbs::for('shop_the_look', function (BreadcrumbTrail $trail) { $trail->parent('home'); $trail->push(trans('shop::app.shop-the-look.index'), route('shop.shop_the_look.index')); });
However error still occur:
Route [shop.shop_the_look.index] not defined.
Later I try to clear the route cache and refresh it with laravel command:
php artisan route:cache , php artisan route:clear
Then, this error popped out:
Target [Webkul\Store\Contracts\ThemeCustomization] is not instantiable while building [Webkul\Store\Http\Controllers\HomeController].Am I following the correct way? Should I cache the route after defining new route?
-
Hello @aga
Greetings of the day..!!
This error is coming due to the package that you have created for creating a custom theme ie Webkul/Store.
kindly remove your current package and download the same package we have uploaded from the given link of the GitHub Repository.link - https://github.com/bagisto/custom-theme
Try to apply this first then let us know if you are still facing some issues. Hopefully this will help you to resolve your query.
Thanks & Regards..!!
-
@Rishabh-Webkul
it works. After apply the new theme files and run:php artisan route:cache
this problem fixed
target [Webkul\Store\Contracts\ThemeCustomization] is not instantiable while building [Webkul\Store\Http\Controllers\HomeController]Thanks
-
Hello @aga ,
Thanks for the update.
Also, if you like our support, you may give us the review here:- https://www.trustpilot.com/review/bagisto.com
That would be grateful for us.
Thanks & Regards,
Bagisto Team