laravel blade模板引擎学习

@extends

@extends用来指定子模板所继承的模板:

@extends('test.master')
<!-- 表示继承test目录下的master.blade.php模板 --!>

@section

blade模板引擎4.0建议用 @stop 替换 @endsection ,不过是向下兼容的,所以 @endsection 还可以用。
@section+@endsection用来定义片段(section):

@section('ts')

desc test content

@endsection

之后使用这个片段的话只需要用@yield('ts')即可。

@section+@show用来定义并在此显示片段(section),类似于在@section+@endsection后紧跟@yield:

@section('ts')
it is a test.
@show
-- 在父模板中使用该代码相当于给ts片段加了一个默认值,子模板中可以通过重新定义ts片段来修改ts模板的值 --!>

@parent

在子模板中使用表示父模板中的内容

@yield

@yield用来显示片段(section):

@yield('ts', 'default value')
<!-- 第一个参数是片段名,第二个参数是默认值(当指定的片段名不存在时显示的值) --!>

@include

引入模板:

@include('layouts.footer')
-- 表示引入layouts/footer.blade.php --!>

Blade 与 JavaScript 框架

由于许多 JavaScript 框架也使用「大括号」在浏览器中显示指定的表达式,因此可以使用 @ 符号来告知 Blade 渲染引擎该表达式应该维持原样。举个例子:

Hello, @{{ name }}.

在这个例子中,@ 符号会被 Blade 移除。而且,Blade 引擎会保留 {{ name }} 表达式,如此一来便可跟其它 JavaScript 框架一起应用。

当数据存在时输出

有时候你想要输出一个变量,但你并不确定这个变量是否已被设置。我们可以用像这样的冗长 PHP 代码表达:

{{ isset($name) ? $name : 'Default' }}

不过,Blade 提供了较方便的缩写来替代写三元运算符表达式:

{{ $name or 'Default' }}

你可能感兴趣的:(php后端开发,laravel,blade)