关键词搜索

源码搜索 ×
×

PHP笔记-laravel中Blade模板引擎的使用

发布2022-05-20浏览1484次

详情内容

①Blade是Laravel提供的一个简单强大的模板引擎。

②和其他流行的PHP模板引擎不一样,Blade并不现在你在视图view中使用原生PHP代码。

③所有Blade视图页面都将被编译成原生PHP代码并缓存起来,除非模板文件被修改,否则不会被重写编译。

本博文主要记录了如下功能点:

@yield

@section

@extends

@stop

@parent

@include和传参

@if

@elseif

@else

@endif

@unless

@endunless

@for

@endfor

@foreach

@endforeach

@forelse

@empty

@endforelse

以及URL

程序结构如下:

路由web.php添加:

  1. Route::prefix('student')->group(function(){
  2. ......
  3. ......
  4. ......
  5. Route::get('section1', 'StudentController@section1');
  6. Route::get('urlTest', 'StudentController@urlTest')->name('url');
  7. });

url.blade.php

  1. <a href="{{url('url')}}">url()</a>
  2. <br/>
  3. <a href="{{action('StudentController@urlTest')}}">action()</a>
  4. <br/>
  5. <a href="{{route('url')}}">route()</a>

layouts.blade.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <meta charset="utf-8">
  4. <title>轻松学会Laravel - @yield('title')</title>
  5. <style>
  6. .header{
  7. width:1000px;
  8. height:150px;
  9. margin:0 auto;
  10. background:#f5f5f5;
  11. border: 1px solid #ddd;
  12. }
  13. .main{
  14. width:1000px;
  15. height:300px;
  16. margin:0 auto;
  17. clear:both;
  18. margin-top:15px;
  19. }
  20. .main .sidebar{
  21. float:left;
  22. width:20%;
  23. height: inherit;
  24. background: #f5f5f5;
  25. border: 1px solid #ddd;
  26. }
  27. .main .content{
  28. float:right;
  29. width:75%;
  30. height:inherit;
  31. background:#f5f5f5;
  32. border: 1px solid #ddd;
  33. }
  34. .footer{
  35. width:1000px;
  36. height:150px;
  37. margin:0 auto;
  38. margin-top:15px;
  39. background:#f5f5f5;
  40. border:1px solid #ddd;
  41. }
  42. </style>
  43. <body>
  44. <div class = "header">
  45. @section('header')头部@show
  46. </div>
  47. <div class = "main">
  48. <div class = "sidebar">
  49. @section('sidebar')
  50. 侧边栏
  51. @show
  52. </div>
  53. <div class = "content">
  54. @yield('content','主要内容区域')
  55. </div>
  56. </div>
  57. <div class = "footer">
  58. @section('footer')
  59. 底部
  60. @show
  61. </div>
  62. </body>
  63. </html>

common1.php

<p>我是include {{$message}}</p>

section1.blade.php

  1. @extends('layouts')
  2. @section('title')
  3. 哼哼哈嘿
  4. @stop
  5. @section('header')
  6. @parent
  7. header
  8. @stop
  9. @section('sidebar')
  10. @parent
  11. sidebar
  12. @stop
  13. @section('content')
  14. content
  15. <!-- 模板输出php变量 -->
  16. <p>{{$name}}</p>
  17. <!-- 模板调用php代码 -->
  18. <p>{{time()}}</p>
  19. <p>{{date('Y-m-d H:i:s', time())}}</p>
  20. <p>{{in_array($name, $arr) ? 'true' : 'false'}}</p>
  21. <p>{{var_dump($arr)}}</p>
  22. <p>{{isset($name) ? $name : 'default'}}</p>
  23. <p>{{$name or 'default'}}</p>
  24. @include('student.common1', ['message' => '我是错误信息'])
  25. <br/>
  26. @if($name == '小明')
  27. 我是小明
  28. @elseif($name == '小黑')
  29. 我是小黑
  30. @else
  31. 我是谁
  32. @endif
  33. <!-- if中可以用php函数 -->
  34. <br/>
  35. @if (in_array($name, $arr))
  36. true
  37. @else
  38. false
  39. @endif
  40. <!-- unless的使用,属于if的取反 -->
  41. <br/>
  42. @unless($name != '小明')
  43. 我是小明
  44. @endunless
  45. @unless($name == '小明')
  46. 我不是小明
  47. @endunless
  48. {{-- @for的使用--}}
  49. <br/>
  50. @for($i = 0; $i < 10; $i++)
  51. <p>{{$i}}</p>
  52. @endfor
  53. {{-- @foreach的使用--}}
  54. <br/>
  55. @foreach($students as $student)
  56. <p>{{$student->name}}</p>
  57. @endforeach
  58. {{-- foreach的变种forelse--}}
  59. @forelse($students as $student)
  60. <p>{{$student->name}}</p>
  61. @empty
  62. <p>null</p>
  63. @endforelse
  64. @stop

StudentController.php关键代码如下:

  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Student;
  4. use Illuminate\Support\Facades\DB;
  5. class StudentController extends Controller{
  6. ......
  7. ......
  8. public function section1(){
  9. $students = Student::get();
  10. $name = '小明';
  11. $arr = ['小白', '小黑'];
  12. return view('student.section1', [
  13. 'name' => $name,
  14. 'arr' => $arr,
  15. 'students' => $students
  16. ]);
  17. }
  18. public function urlTest(){
  19. return view("url");
  20. }
  21. }

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载