叶片模板引擎怎么在Laravel中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>叶片模板引擎强>
叶片是Laravel提供的一个简单强大的模板引擎,它是把叶片视图编译成原生的PHP代码并缓存起来。缓存会在叶片视图改变时而改变,这意味着叶片并没有给你的应用添加编译的负担.Blade视图文件使用.Blade。php后缀,一般都存储在资源/视图目录下。
<强>模板继承强>
先来看个例子
& lt; !——, Stored 拷贝资源/视图/布局/master.blade.php——比; & lt; html> ,& lt; head> ,& lt; title> App Name 作用;@yield(& # 39;标题# 39;)& lt;/title> ,& lt;/head> ,& lt; body> ,@section(& # 39;栏# 39;) 却;能够才能is 从而master 侧边栏。 ,@show , ,& lt; div 类=癱ontainer"比; @yield才能(& # 39;内容# 39;) ,& lt;/div> ,& lt;/body> & lt;/html>
叶片模板文件包含了典型的HTML标记。你肯定看到了@section和@yield指令.@section指令就如它的名字所暗示的那样定义了一个内容区块,而@yield指令是用来显示所提供的挂件区块所包含的内容。我们已经定义好了一个基本的布局,接下来我们可以使用刀片的@extends指令来明确的指定继承这个布局。然后使用@section指令将挂件中的内容挂载到布局中,在上面的例子中,挂件的内容将被挂载到布局中的@yield部分:
& lt; !——, Stored 拷贝资源/视图/child.blade.php ——比; @extends (& # 39; layouts.master& # 39;) , @section(& # 39;标题# 39;,,& # 39;Page 标题# 39;) , @section(& # 39;栏# 39;) ,@ parent , ,& lt; p>却;能够is appended 用,master 栏。;/p> @endsection , @section(& # 39;内容# 39;) ,& lt; p>却;能够is my body 内容灵活;/p> @endsection
在上面的例子作用侧边栏挂件利用@ parent指令来追加布局中的侧边栏部分的内容,如果不使用则会覆盖掉布局中的这部分.@parent指令会在视图被渲染时替换为布局中的内容。
叶片视图可以像原生PHP视图一样使用全局帮助函数视图来返回渲染后的内容:
路线::get(& # 39;叶片# 39;,,function (), { ,return 视图(& # 39;孩子# 39;); });
<强>显示数据强>
你可以使用花括号{来在视图中显示传递到视图中的变量,例如,你定义了下面的路由:
路线::get(& # 39;问候# 39;,,function (), { ,return 视图(& # 39;欢迎# 39;,,(& # 39;名字# 39;,=祝辞,& # 39;Duicode& # 39;]); })
你可以在视图中这样来输出名字变量的内容:
你好,,{{,name 美元;}}
当然,你也可以从原生php方法中返回内容。事实上,你可以在叶片回波声明中使用任意的php代码:(叶片{{}}声明中的内容是自动通过htmlentities方法过滤的,用来防止XSS攻击)。
, current UNIX timestamp is {{,时间()}}
由于很多JavaScript框架都使用花括号来表明所提供的表达式应该被显示在浏览器中,所以你可以使用@符号来告诉叶片渲染引擎你需要这个表达式原样保留:
你好,,@ {{,name }}
我们常用三目运算符来赋值
{{,收取(名字)美元?,name 美元;:,& # 39;默认# 39;,}}
叶片提供了一个便捷的方式来替换这个三元声明:
{{, name 美元;或是& # 39;默认# 39;,}}
默认叶片{{}}声明会自动的使用htmlentities方法来避免XSS攻击。如果你不想你的数据被转义,你可以使用下面的语法,但是要注意,小心被攻击:
你好,,{! !,name 美元;! !}
<>强控制结构强> <强>
强>
你可以通过@ if, @elseif, @else和@endif指令来使用如果控制结构:
@if (count($记录),===,1) ,小姐:have one 记录! @elseif (count($记录),祝辞,1) ,小姐,have multiple 记录! @else ,小姐:不要# 39;t  have any 记录! @endif
当然为了方便,叶片也提供了替代指令@unless指令:
@unless (身份验证:检查()) ,你断开连接;not  signed 。 @endunless