博客列表 >1105 laravle框架下的inculde文件 与 extends模版引用 20191105 2000-2200

1105 laravle框架下的inculde文件 与 extends模版引用 20191105 2000-2200

没有人的夏天的博客
没有人的夏天的博客原创
2019年11月08日 13:13:52700浏览

laravel 框架下的页面多页面加载

方法一:include加载:在主体页面中加载局部页面

局部页面的位置 resources/views/XXX/BBB.blade.php
在主体页面直接写入要调用的局部页面

@include('xxx.bbb')

主体页面负责提供数据并渲染整体效果,向加载的局部页面提供数据

访问:主体页面

方法二:模版继承:局部页面中向模版页面提供数据和局部样式,需要在局部页面中先继承模版

模版页面的位置 resources/views/XXX/BBB.blade.php

模版页面提供整体页面效果,不提供数据源

局部页面调用模版页面后,向模版页面提供数据及局部样式

访问:局部页面

模版页面:定义局部页面要写入的信息位置及名称:

方法一:代码块组合

  1. @section(’xxx块名‘)
  2. 选择性代码
  3. @show

方法二:变量名

  1. @yield(’xxx块名‘)

模版中可定义多个信息位置,用块名区分

局部页面:代码结构如下:

第一行写入要继承的母版:xxx 路径名,bbb 文件名,不需要扩展名

  1. @extends ('XXX.BBB');

定义要写入的信息,用块名区分

  1. @section ('xxxx块名')
  2. @parent 是否要保留母模版内的选择性代码块
  3. 局部代码信息
  4. @endsection

以上信息都可以被 @yield@section + @show 组合引用, @section + @show 可以选择保留部分代码,@yield 直接替换

样例如下:

模版页面:lout\index.blade.php

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>@yield('list1')</title>
  4. </head>
  5. <body>
  6. @include('lvio\header')
  7. {{-- -infolist --}}
  8. <div>
  9. <div>
  10. @section ('list0')
  11. <div>
  12. @show
  13. </div>
  14. /</div>
  15. </body>

局部页面:listmov.blade.php

  1. @extends('lout.index');
  2. @section ('list0')
  3. @foreach ($mov_data as $mv)
  4. @parent //保留模版中的代码,放在下面代码前渲染
  5. <img style="height:15rem" src="\img\{{ $mv['img'] }}" alt="...">
  6. <div>
  7. <h5>{{ $mv['mov_name'] }}</h5>
  8. <h6>@foreach ($dir_data as $dv)
  9. @if ($dv['mid']==$mv['mid'])
  10. {{ $dv['d_name'].' 作品' }}
  11. @endif
  12. @endforeach
  13. @foreach ($con_data as $cv)
  14. @if ($cv['cid']==$mv['cid'])
  15. {{ ' '.$cv['cont']}}
  16. @endif
  17. @endforeach
  18. </h6>
  19. <p>{{ $mv['title'] }}</p>
  20. <a href="#" ">了解更多</a>
  21. </div>
  22. </div>
  23. @endforeach
  24. @endsection
  25. @section ('list1')
  26. 中国电影
  27. @endsection

模版中inculde的子页面:lvio\header

  1. {{--hearder--}}
  2. <div>
  3. <h5>电影列表</h5>
  4. <nav>
  5. @foreach ($con_data as $v)
  6. <a>{{ $v['cont'] }}</a>
  7. @endforeach
  8. </nav>
  9. </div>

访问: listmove 页面 会加载 index模版页面, index模版页面会include header页面

数据全部由 listmove 页面提供

效果图

@foreach @if @php 的使用

在blade 模版中 可以通过 @ 符 调用php的原代码

if判断 用@endif 结束 中间的输出用 {{}} 输出

  1. @if ($cv['cid']==$mv['cid'])
  2. {{ ' '.$cv['cont']}}
  3. @endif

foreach循环 用@endforeach 结束

  1. @foreach ($con_data as $v)
  2. <a>{{ $v['cont'] }}</a>
  3. @endforeach

php原生代码 用@endphp 结束

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