刀模板引擎怎么在Laravel中使用

  

叶片模板引擎怎么在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

刀模板引擎怎么在Laravel中使用