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 PHP/Laravel Developer: Your Dream Work Environment
Remote
iPhone Photography School
In-house Laravel Developer.
Gold Coast / Australia
MXstore
Laravel Developer
Oak Brook, IL
Tidal Commerce
Senior Backend Engineer
Santa Monica only
Saatchi Art
Senior Laravel Developer
San Francisco
Stitch Labs
Senior Software Developer
South Jordan, UT
Lendio
Full-Stack Developer
Paris, France
Wingly