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 31,000+ others and never miss out on new tips, tutorials, and more.

Laravel News Partners

Laravel Jobs

Senior Full Stack PHP Developer (Laravel)
Remote
MAPPEN
Senior Laravel Developer
Remote
ACTO
Senior Full-Stack Engineer
[REMOTE: USA Only]
Curricula
Developers for B2B eCommerce SaaS, AWS serverless, Laravel, Vue, Python
Remote, full time EU only
ES Tech Group
Senior PHP Developer (Laravel)
Remote
The Interaction Design Foundation