练习blade模板的语法。如:变量渲染、foreach、if...else...
@foreach($navs as $item)
<div>{{$item['title']}}**{{$item['url']}}</div>
@endforeach
{{--接收数据时使用{{}}的方式可以输出转义的字符串--}}
{{$span}}
<br>
{{--接收数据时使用{!!!!}的方式可以输出原样字符串--}}
{!!$span!!}
{{--为了解决语法冲突,可能别的前端框架使用这种语法,如果想要原样输出{{}}{!! !!}中的内容,可以在前面加一个@符--}}
@{{ 内容 }}
@{!! 内容 !!}
<!--这种注释会显示在html源码中-->
<?php //这也是一种注释方法,不会显示在html源码中?>
{{--blade模板引擎中的注释方法,不会显示在html源码中--}}
{{--balde模板中输出使用php的一种方法--}}
@php
echo time();
@endphp
{{--条件判断--}}
@if($span)
{{$span}}
@endif
{{--也可以用原生的代码,个人看习惯,团队看集体--}}
<?php if($span){?>
<?php //这种直接输出没有转义?>
<?php echo $span;?>
<?php }?>
<?php echo '.....................';?>
{{--另外de种循环的方式--}}
@for($i=0;$i<count($navs);$i++)
@break($i==1)
<div>{{$navs[$i]['title']}}**{{$navs[$i]['url']}}</div>
@endfor
<?php echo '.....................';?>
@for($i=0;$i<count($navs);$i++)
@continue($i==1)
<div>{{$navs[$i]['title']}}**{{$navs[$i]['url']}}</div>
@endfor
<?php echo '.....................';?>
<?php $i=0;?>
@while($i<count($navs))
<div>{{$navs[$i]['title']}}**{{$navs[$i]['url']}}</div>
<?php $i++;?>
@endwhile
include、section
模板包含
在一个.blade.html页面中使用:
@include('引用的路径')
一般用于引用公共部分,如头部,尾部,各一个文件
@include('引用的路径头部')
内容部分
@include('引用的路径尾部')
模板继承
一个html文件,包括了头部和尾部
头
<div class="main">
@section('workplace')
<!--这之间的内容也会被继承-->
@show
<!--workplace 是区块名称-->
<!--这之间可以加内容也可以不加-->
</div>
尾
要继承的页面
@extend('要继承的文件路径')
@section('workplace')
<div>变化的内容区</div>
@endsection//....以上这种方式会覆盖父级模板区块的内容
@section('workplace')@parent //继承了模板区块的内容,放在了变化内容前
<div>变化的内容区</div>
@endsection
//....
@section('workplace')<div>变化的内容区</div>
@parent //继承了模板区块的内容,放在了变化内容后
@endsection
//...................................
@yield
类似赋值被继承的模板
<div class="container">
<div>container</div>
@yield('content')
</div>
继承的页面
@section('content')
<div>变化的内容区</div>
@endsection
总结:
在.blade.html中可以使用blade模板的语法,也可以使用php原生的语法。
所有 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来,除非它被修改,否则不会重新编译。