一、Blade模板引擎简介及模板继承的使用
1.Blade模板引擎简介
● blade是laravel提供的一个既简单又强大的模板引擎。
● 和其他流行的PHP模板引擎不一样,Blade并不限制你在视图(View)中使用原生PHP代码。
● 所有Blade视图页面都将被编译成原生PHP代码并缓存起来,除非你的模板文件被修改了,否则不会重新编译。
2.模板继承
● section ● yield
● extends ● parent
<body>
<div class="header">
@section('header')
头部
@show
</div>
<div class="main">
<div class="sidebar">
@section('sidebar')
侧边栏
@show
</div>
<div class="content">
@yield('content','主要内容区域');
</div>
</div>
<div class="footer">
@section('footer')
底部
@show
</div>
</body>
</html>
{{-- section是用来定义一个视图片段的--}}
{{-- yield 是用来展示某个指定的section里所表达的内容 可以将其假设为一个占位符用子模版去实现它--}}
{{--区别
yield是不可扩展的(因为他只声明定义了一个视图片段没有任何内容)
section既定义了视图片段,也可以有内容,还可以被子模版扩展
--}}
在view中:
模板继承 用@extends('模板名')
模板重写 用@section('重写部分的名字')
重写的内容
@stop
对@yield的模板重写也是一样的用法。
● 模板中输出变量
● 模板中调用PHP代码
● 原样输出
● 模板中的注释
● 引入子视图include的使用
@section('footer')
{{-- footer --}}
{{-- 1.模板中输出php变量 --}}
{{-- {{ $testName }} --}}
{{-- 2.模板中执行php代码 --}}
{{-- {{ date('Y年m月d日 H时i分s秒', time()) }} --}}
{{-- 3.模板中强制输出 @{{ $name }} 字符串 --}}
{{-- @{{ $age }} --}}
{{-- 4.注释格式 --}}
{{-- 5.子视图引用 include --}}
@include('common1', ['message'=>'hello world'])
@stop
三、流程控制
● if ● unless
● for ● foreach
@section('footer')
{{-- 流程控制 --}}
{{-- if ifelse else endif --}}
{{-- @if($name == 'EnzoLiu')
i'm EnzoLiu
@elseif($name == 'jeck')
i'm jeck
@else
who am i?
@endif --}}
{{-- unless(if反向) --}}
{{-- @unless($name != 'EnzoLiu')
我是EnzoLiu
@else
我不是EnzoLiu
@endunless --}}
{{-- for 循环 --}}
{{-- @for($i=0; $i<10; $i++)
{{ $i }}
@endfor --}}
{{-- foreach 数组遍历 --}}
{{-- @foreach($res as $key => $value)
{{ $key }}<br>{{ $value }}
@endforeach --}}
{{-- forelse 循环(特殊) --}}
{{-- 释: $res如果有值则运行 $obj->name 代码块, 如果为空则显示 null --}}
{{-- @forelse($res as $obj)
{{ $obj->name }}<br>
@empty
null
@endforelse --}}
@stop
四、模板中的URL
● url()
● action()
● route()
<!-- url()通过路由的名称生成url -->
<a href="{{ url('url') }}">url()</a>
<br>
<!-- action()通过制定控制器及方法名生成url -->
<a href="{{ action('StudentController@urlTest') }}">action()</a>
<br>
<!-- route()通过路由的别名生成url -->
<a href="{{ route('url') }}">route()</a>