首页 > 作文

Laravel实现通过blade模板引擎渲染视图

更新时间:2023-04-08 08:10:59 阅读: 评论:0

laravel提供了blade亨利摩尔模板引擎用于视图的渲染,在blade中可以直接使用php代码,并且blade最终也会被编译为php缓存起来,只有在blade文件被修改后才会重新编译,这一点可以节省开销提高应用性能。blade文件.blade.php作为视图文件存放于laravel的resource/views目录下。

1、定义模板

blade定义模板页面同创建html页面一样,只不过在适当的位置通过@ction或@yield来占位,当其它页面引用模板页时将内容填充到占位的位置即可

<html> <head>  <title&詹天佑读后感400字gt;@yield('title')</title> </head> <body>  <header class="header">   @ction('header')    这是头部<br>   @show  </header>  <div class="middle">   <aside class="aside">    这是侧边栏    @yield('aside')   </aside>   <div class="content">    @ction('content')    这是主体内容    @show   </div>  </div>  <footer class="footer">   这是底部   @yield('footer')  </footer> </body></html>

ction与yield都是占位符,其区别体现在引用模板时,当使用yield时会完全将指定的占位符替换掉,而使用ction时可以通过@parent来保留@ction()~@show之间的内假装开心容。

如果需要在blade中引入外部js、css文件可以采用相对public目录的绝对路径,例如引入自带的bootstrap,位于public/css/app.css,可以<link rel=”stylesheet” href=”{{ ast(‘./css/app.css’)}}” rel=”external nofollow” >

2、引用模板

引用模板首先需要通过@extends()引入你需要使用的模板,模板位置相对于views目录。然后通过@ction()~@stop(注意与定义模板时的@ction~@show区别),将你所需要替换的内容填充到模板的指定位置,例如要填充header对应的ction:

@extends('template.layout')  {{--引入模板views/template/layout.blade.php--}}@ction('title阿长与山海经赏析')登录界面@stop@ction('header')    {{--填充到header对应的占位符--}}@parent      {{--保留模板原内容--}}头部替换内容@stop

引入组件:通过@component来引入组件模板。比如定义了一个通用的错误提示组件alert:

<div style="color: #ff5b5d;"> <h5>{{$title}}</h5> {{$slot}}</div>

在页面中使用该组件:

@component('template.alert') {{--引入组件views/template/alert.blade.php--}} @slot('title')    {{--指定替代组件中的$title位置--}}  alert标题 @endslot alert组件内容@endcomponent

@component~@endcomponent之间的内容会自动替代组件{{$slot}},如果要指定替代的位置,可以通过@slot()~@endslot

引入子视图:在一个页面中如果希望引入一个blade子视图,可以通过@include()

@include('template.child')

在blade中输出变量通过{{$var}},其中的语句已经经过 php 的 htmlentities 函数处理以避免 xss 攻击。例如在controller中引入view时传入变量参数:

public static function showblade(){ return view('login.login',['var'=>'test']);}

在blade中使用该变量

变量为:{{ist($var)? $var : ‘默认值’}}

有时候我们希望blade不要对文本进行解析,原样输出,比如在vue中也使用{{}}包裹变量,我们不希望blade对其进行编译,这时可以使用@:

原文本输出:@{{ $var }}

3、流程控制

blade提供了一套流程控制语句来对页面的渲染进行控制,使页面的渲染更为快捷,并且这些控制语句都是和php非常类似的。

if判断:

@if ($val >80) 优秀@elif ($val>60) 及格@el 不及格@endif

循环:

@for ($i = 0; $i < 10; $i++) the current value is {{ $i }}@endfor @foreach ($urs as $ur) <p>this is ur {{ $ur->id }}</p>@endforeach

switch分支:

@switch($i) @ca(1)  first ca...  @break  @ca(2)  cond ca...  @break  @default  default ca...@endswitch

认证:@auth 和 @guest 指令可用于快速判断当前用户是否登录:

@auth // 用户已登录...@endauth @guest // 用户未登录...@endguest

以上这篇laravel实现通过blade模板引擎渲染视图就是www.887551.com分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多钟丽缇 女儿支持www.887551.com。

本文发布于:2023-04-08 08:10:58,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/22fb7bf59d21d4080c8c03dc2559fb98.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Laravel实现通过blade模板引擎渲染视图.doc

本文 PDF 下载地址:Laravel实现通过blade模板引擎渲染视图.pdf

标签:模板   组件   这是   视图
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图