Code snippet that can be used to check is view exists in Laravel 7.
You can check if View file exists before actually loading it.
if (view()->exists('custom.page')) {
// Load the view
}
You can even load an array of views and only the first existing will be actually loaded.
return view()->first(['custom.dashboard', 'dashboard'], $data);
Example how to render dynamic views:
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,
]);
}
}