博客列表 >练习blade模板的语法。如:变量渲染、foreach、if...else...等2、include、section—2019年11月5日

练习blade模板的语法。如:变量渲染、foreach、if...else...等2、include、section—2019年11月5日

L先生的博客
L先生的博客原创
2019年11月12日 21:00:42977浏览

练习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 代码并缓存起来,除非它被修改,否则不会重新编译。




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议