从今天起,做一个会使用 view ()->exists 方法的人

Laravel News 网站的 Laravel Tutorials 和 Laravel Packages 板块其实是文章的两个分类,你看它们的请求地址就知道了。

它们都是文章列表,但用了不同的布局文件。背后实现的方式是 view()->exists 方法。

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,
            'posts' => $category->posts()->orderBy('published_at', 'desc')->paginate(10),
        ]);
    }
}

view()->exists 方法用来判断指定视图文件是否存在,存在返回 true,不存在返回 false。在上面的代码实例中,Laravel Tutorials 使用到了自定义布局文件 laravel-tutorials.blade.php,而 Laravel Packages 没有自定义布局文件,使用的则是默认布局文件 show.blade.php

参考链接

https://laravel-news.com/view-exists

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 7年前 加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

学到了。

7年前 评论

?
原来有判断view是否存在的函数呀。这样就可以很方便地搞wordpress的那种模版机制了。

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!