首页 Order Laravel 正文

Laravel 模板的继承布局

金鹏头像 金鹏 Laravel 2022-04-01 14:04:50 0 656
导读:一.继承布局     1.为了重复的页面代码更好的管理,首先要定义需要被继承的代码;   &nb...
.继承布局

      1. 为了重复的页面代码更好的管理,首先要定义需要被继承的代码;

        2.  比如,我们在 views 目录下建立 public 目录建立父模板 base.blade.php

        3. 这个 base 模板主要存放主体页面的,为了更好的理解,关闭 debug 调试

4. 然后在正常的模板区域建立一个子模板 index.blade.php,并继承 base

@extends( 'public.base ')

 

      5. 父模板通过@yield 设置一个可替换的变量,子模板通过@section 改变变量;

{{--@yield 参数 1 变量名,参数 2 默认值 --}}

<title>Base -- @yield( 'title ', 'no title ')</title>

 

{{--变父模板的变量值 --}}

@section( 'title ', '首页')

 

<div class="container">

区域

@yield( 'main ')

</div>

 

@section( 'main ')

<p>子区域</p>

@endsection

 

      6. 当然,也可以设置子模板继承父模板的部分内容,具体如下:

{{--父模板 --}}

@section( 'sidebar ')

<nav>

<ol>

<li><a href="#">导航</a></li>

</ol>

</nav>

@show

 

{{--子模板 --}}

@section( 'sidebar ')


@parent

@endsection

 

.其它技巧

1. 默认变量会被自动转义,比如特殊符号&,如果不想被转义可以用如下格式: {!! $name !!}

 

      2. 可以使用@json 直接将数组转换成 json格式,参数 2 格式化,和原生一样;

@json($list)

@json($list, JSON_PRETTY_PRINT)

 

      3. JavaScript 区域,可能也有{{name}}这种模式的操作,和模版变量冲突;

{{--加上@即可防止解析 --}}

@{{ name }}

 

{{-- JS 时,用范围方式 --}}

@verbatim

{{ name }}

@endverbatim

 

4. 如果想让所有模版共享一个变量,在 Providers\AppServiceProvider.php

public function boot()

{

view()->share( 'title ', 'Laravel ');

}

 

<title>{{$title}}</title>

 

PS:补一下:给模版传递变量除了参数 2 的数组,也可以使用 with()方法;

view()->with( 'name ', '& ');


本文地址:https://www.jinpeng.work/?id=187
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键