• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel实现通过blade模板引擎渲染视图

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

    1、定义模板

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

    html>
     head>
      title>@yield('title')/title>
     /head>
     body>
      header class="header">
       @section('header')
        这是头部br>
       @show
      /header>
      div class="middle">
       aside class="aside">
        这是侧边栏
        @yield('aside')
       /aside>
       div class="content">
        @section('content')
        这是主体内容
        @show
       /div>
      /div>
      footer class="footer">
       这是底部
       @yield('footer')
      /footer>
     /body>
    /html>

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

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

    2、引用模板

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

    @extends('template.layout')  {{--引入模板views/template/layout.blade.php--}}
    
    @section('title')
    
    登录界面
    
    @stop
    
    @section('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中使用该变量

    变量为:{{isset($var)? $var : '默认值'}}

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

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

    3、流程控制

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

    if判断:

    @if ($val >80)
     优秀
    @elseif ($val>60)
     及格
    @else
     不及格
    @endif

    循环:

    @for ($i = 0; $i  10; $i++)
     The current value is {{ $i }}
    @endfor
     
    @foreach ($users as $user)
     p>This is user {{ $user->id }}/p>
    @endforeach

    switch分支:

    @switch($i)
     @case(1)
      First case...
      @break
     
     @case(2)
      Second case...
      @break
     
     @default
      Default case...
    @endswitch

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

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

    以上这篇Laravel实现通过blade模板引擎渲染视图就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Laravel 5.1 框架Blade模板引擎用法实例分析
    • Laravel中的Blade模板引擎示例详解
    • Laravel模板引擎Blade中section的一些标签的区别介绍
    • Laravel 5框架学习之Blade 简介
    • Laravel框架中Blade模板的用法示例
    • Laravel框架之blade模板新手入门教程及小技巧
    • 解决Laravel blade模板转义html标签的问题
    • 在Laravel 的 Blade 模版中实现定义变量
    • Laravel 实现在Blade模版中使用全局变量代替路径的例子
    • laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
    上一篇:laravel 解决Validator使用中出现的问题
    下一篇:解决php扩展安装不生效问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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