5 个非常有用的 Laravel Blade 指令,你用过哪些?
接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。
废话少说,让我们开始吧。
1. 检测用户是否认证
你可以通过验证用户是否为空来检测其是否认证:
@if(auth()->user())
// 用户已认证
@endif
然而,Laravel 自带的 Blade 命令可以更简洁地实现相同的功能:
@auth
// 用户已认证
@endauth
2. 检测用户是否为访客
与认证相反,我们可以用 auth
辅助函数的 guest()
方法来检测用户是否为访客:
@if(auth()->guest())
// 用户未认证
@endif
不过 Laravel 也为此提供了 @guest
命令:
@guest
// 用户未认证
@endguest
我们也可以使用 else
语句来组合这两个命令:
@guest
// 用户未认证
@else
// 用户已认证
@endguest
3. 如果第一个视图存在则引入,否则引入第二个
构建多主题站点可能会有一个文件如果存在就引入,否则就引入另一个的需要,你可以简单地使用条件判断来实现:
@if(view()->exists('first-view-name'))
@include('first-view-name')
@else
@include('second-view-name')
@endif
不过还是有一个更简洁直观的命令来做这件事:
@includeFirst(['first-view-name', 'second-view-name']);
4. 根据条件引入视图
当你只想在一定逻辑的基础上(如:一个已通过认证的用户)添加一些内容的时候,根据条件引入视图就非常有用了。
你可以使用 @if
条件来这样写:
@if($post->hasComments())
@include('posts.comments')
@endif
我们可以只用一行命令 @includeWhen
来做到:
@includeWhen($post->hasComments(), 'posts.comments');
5. 引入一个存在的视图
如果你有自定义主题系统或者你需要动态地创建 Blade 视图,那么检查文件是否存在就是必须要做的。
可以在辅助函数 view()
上调用 exists
方法:
@if(view()->exists('view-name'))
@include('view-name')
@endif
也可以使用 Blade 命令 includeIf
来处理:
@includeIf('view-name')
你可以通过 Blade 官方文档 了解更多实用的技巧来优化你 Laravel 项目里的前端模板。
重构快乐!
更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区
5 个非常有用的 Laravel Blade 指令,你用过哪些?的更多相关文章
- laravel Blade 模板引擎
与视图文件紧密关联的就是模板代码,我们在视图文件中通过模板代码和 HTML 代码结合实现视图的渲染.和很多其他后端语言不同,PHP 本身就可以当做模板语言来使用,但是这种方式有很多缺点,比如安全上的隐 ...
- laravel blade $loop
laravel 5.3 blade 新增$loop变量 文档如下: 在Laravel 5.3中,@foreach指令提供了更加强大的功能,在每一个@foreach循环体中都可以调用一个新的$loop变 ...
- windows+linux开发环境 解决laravel blade模板缓存问题
编码环境windows10 编码IDE:phpstorm 2016.2 PHP框架:laravel5.3 + 代码运行环境:centos7 + nginx 在开发过程中,上传blade模板文件到lin ...
- laravel blade模板介绍
第一步:首先写好模板 在sites下新建立一个app.blade.php文件 写入模板如: <!DOCTYPT html><html><head> <titl ...
- Laravel Blade 模板 @section/endsection 与 @section/show, @yield 的区别
base layout 中需要使用 @section("section_name") 区块链是什么? @show 继承的 blade 中需要使用 @section("se ...
- laravel blade模板里调用路由方法重定向
@if (Session::get('user') == NULL) {!!Redirect::to('login')!!} @endif or @if (Session::get('user') = ...
- Laravel -- Blade模板
{{--流程控制--}} @if($name == '1') this is 1 @elseif($name == '2') this.is 2 @else who am i? @endif @for ...
- Laravel 操作指令
php artisan migrate —path=database/migrations/v1 更新表数据 php artisan make:migration create_channels_ta ...
- php--一些有用的Laravel辅助函数
str_start()/str_finish() 将指定值添加到字符串的开头/结尾(当不是以该值开头/结尾时) blank() 判断给定的值是否为「空」 collect() 根据给定的数组创建一个集合 ...
随机推荐
- D. Huge Strings Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined)
http://codeforces.com/contest/868/problem/D 优化:两个串合并 原有状态+ 第一个串的尾部&第二个串的头部的状态 串变为第一个串的头部&第二个 ...
- CDOJ--1141
原题链接:http://acm.uestc.edu.cn/problem.php?pid=1141 分析:运用欧拉函数可解此题. #include <iostream> #include ...
- static的应用
静态变量.静态代码块.静态方法.非静态方法的区别: 执行顺序:静态变量和静态代码块是按照先后顺序执行的,即在类加载的时候就执行的,属于自动执行的.使用场景:就是一些全局常量,在开始的时候就需要加载的. ...
- 特征选择实践---python
作者:城东链接:https://www.zhihu.com/question/28641663/answer/110165221来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- R语言缺失值高级处理方法
0 引言 对于一些数据集,不可避免的出现缺失值.对缺失值的处理非常重要,它是我们能否继续进行数据分析的关键,也是能否继续大数据分析的数据基础. 1 缺失值分类 在对缺失数据进行处理前,了解数据缺失的机 ...
- 【Asp.net入门5-03】创建产品清单
- IDEA Mybatis plugin插件破解
破解文件: 链接:https://pan.baidu.com/s/1J7asfLc5I0RBcoYX3_yNvQ 提取码:kjxv 使用方法: C:\Users\{你的用户名}\.IntelliJId ...
- [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
转载自:https://segmentfault.com/a/1190000006435886 解决办法:添加package.config.js配置文件中,添加本文章的红色部分代码 import vu ...
- pom.xml错误:org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)的解决方法
pom.xml文件在添加了新的依赖后,一直报:org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)的错误,Maven ...
- 转:Block原理及引用循环问题
2010年WWDC发布iOS4时Apple对Objective-C进行了一次重要的升级:支持Block.说到底这东西就是闭包,其他高级语音例如Java和C++已有支持,第一次使用Block感觉满简单好 ...