Laravel View Exists

Laravel View Exists

Laravel comes includes with a lot of little helpers that aim to help you save time and keep your code clean. One of those is the View exists method that allows you to check if a blade file does in fact exist.

During the rebuild of this site, I used it in a few places like the category listing page so that I can different designs depending on the category you are looking at. For example, the Laravel Packages category is the default and the Laravel Tutorials is a custom body.

One way of doing this is to set specific routes for what you would like to customize but the view exists allows me to do it all within the one controller. Here is a code sample:

class CategoryController extends Controller
{
    public function show($slug)
    {
        $category = Category::with('posts')->where('slug', $slug)->firstOrFail();

        if (view()->exists('category.custom.'.$category->slug)) {
           $view = 'category.custom.'.$category->slug;
       } else {
            $view = 'category.show';
       }

        return view($view, [
            'category' => $category,
        ]);
    }
}

With this simple check in place, I can create a new blade file in the category/custom/* directory that matches the slug name and it’s automatically used.

Here is also a Youtube video I made of this process, just be warned the volume is low.


Filed in: Laravel Tutorials / Blade


Newsletter

Join the weekly newsletter and never miss out on new tips, tutorials, and more.

Laravel News Partners

Laravel Jobs

SENIOR FULL STACK SOFTWARE ENGINEER
Fort Worth, Texas
Filmsupply
PHP Web Developer
Orlando, FL
Christ for all Nations
PHP Developer
Manhattan, KS (open to Remote)
CivicPlus
Mid-Senior Laravel Developer
Exeter
Optix Solutions
Full Stack Web Developer
Las Vegas, NV
V Shred
Staff Software Engineer (Laravel)
Remote
smartbnb
Software Engineer (PHP, Laravel, Vue)
Los Angeles, CA
Relocity