(慕课网_轻松学会Laravel-基础篇_天秤vs永恒老师)

一、概述

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

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

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

  模板继承:section,yield,extends,parent(参照 http://www.jb51.net/article/60957.htm)

二、实例

  1、定义布局模板 views/people/layout/layout.blade.php

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Laravel @yield('title')</title>
  5. <meta charset="utf-8">
  6. <style type="text/css">
  7. .body{margin:0px;padding:0px;}
  8. .header{width:100%;height:60px;background: red;margin-bottom: 10px;}
  9. .sidebar{width:20%;height:500px;background: green;
  10. margin-right:20px;margin-bottom: 10px;}
  11. .content{width:72%;height:500px;background: blue;margin-bottom: 10px;}
  12. .footer{width:100%;height:60px;background: black}
  13. div{float:left;}
  14. </style>
  15. </head>
  16. <body>
  17. <div class="header">
  18. @section('header')
  19. 头部
  20. @show
  21. </div>
  22. <div class="sidebar">
  23. @section('sidebar')
  24. 侧边栏
  25. @show
  26. </div>
  27. <div class="content">
  28. @yield('content','主要内容区域')
  29. </div>
  30. <div class="footer">
  31. @section('footer')
  32. 底部
  33. @show
  34. </div>
  35. </body>

2、控制器方法分配数据  

  1. //模板技术
  2. public function section1(){
  3. //.和/都可以
  4. $name = 'helloiu';
  5. $data = ['sss','zzz'];
  6. $students = Student::get();
  7. return view('people.student.section1',[
  8. 'name' => $name,
  9. 'data' => $data,
  10. 'students' => $students,
  11. ]);
  12. }
  13. public function urlTest(){
  14. return 'urlTest';
  15. }

3、子模板 views/people/student/section1.blade.php

  1. @extends('people.layout.layout')
  2.  
  3. @section('header')
  4. <!-- @parent展示父模板的内容 -->
  5. @parent
  6. HEADER
  7. @stop
  8.  
  9. @section('sidebar')
  10. sideBar
  11. @stop
  12.  
  13. @section('content')
  14. Content
  15. <!-- 1、模板中输出PHP变量 -->
  16. <p>{{$name}}</p>
  17.  
  18. <!-- 2、模板中调用PHP代码 -->
  19. <p>{{time()}}</p>
  20. <p>{{ date('Y-m-d H:i:s',time())}}</p>
  21.  
  22. <!-- 数组 truefalse必须加引号,要当字符串展示 -->
  23. <p>{{ in_array($name,$data) ? 'true' : 'false' }}</p>
  24. <p>{{ var_dump($data) }}</p>
  25.  
  26. <p>{{ isset($name) ? $name : 'default' }}</p>
  27. <!-- isset短语法 -->
  28. <p>{{ $name or 'default' }}</p>
  29.  
  30. <!-- 3、原样输出 -->
  31. <p>@{{ $name }}</p>
  32.  
  33. <!-- 4、模板中的注释,在浏览器查看源代码看不到 -->
  34. {{-- 我是注释 --}}
  35.  
  36. <!-- 5、引入子视图 可以直接把数据分配到子视图中,在子视图中展示 -->
  37. @include('people.common.common',['message' => '我是error信息']);
  38.  
  39. <!-- 6、流程控制 if或者for后面的括号里使用php代码,不需要双花括符-->
  40. @if($name == 'helloJiu')
  41. I'm {{$name}}
  42. @elseif($name == 'helloHu')
  43. I'm helloHu
  44. @else
  45. who am i?{{$name}}
  46. @endif
  47.  
  48. @if (in_array($name, $data))
  49. true
  50. @else
  51. false
  52. @endif
  53.  
  54. <br>
  55.  
  56. <!-- unless if的取反 -->
  57. @unless($name == 'helloJiu')
  58. I'm {{$name}}
  59. @endunless
  60.  
  61. <!-- 循环 -->
  62. @for($i=0;$i<;$i++)
  63. {{ $i }}
  64. @endfor
  65.  
  66. @foreach($students as $student)
  67. {{ $student->created_at }}
  68. @endforeach
  69.  
  70. <!-- 如果$students存在,则输出,不存在,输出null -->
  71. @forelse($students as $student)
  72. {{ $student->name }}
  73. @empty
  74. <p>null</p>
  75. @endforelse
  76.  
  77. <!-- 模板中的URL -->
  78. <a href="{{ url('url') }}">url</a>
  79. <a href="{{ action('People\StudentController@urlTest') }}">urlAction</a>
  80. <br>
  81. <a href="{{ route('url')}}">route</a>
  82. @stop

4、people/common/common.blade.php

  1. <p>我是common子视图include {{ $message }}<p>

5、整个路由系统

  1. <?php
  2.  
  3. Route::get('/', function () {
  4. return view('welcome');
  5. });
  6.  
  7. Route::group(['middleware' => ['web']], function () {
  8. //
  9. });
  10. //基础路由
  11. // Route::get('basic1',function(){
  12. // return 'Hello World';
  13. // });
  14.  
  15. // Route::post('basic2',function(){
  16. // return 'basic2';
  17. // });
  18. // //多请求路由
  19. // Route::match(['get','post'],'multy1',function(){
  20. // return 'multy1';
  21. // });
  22.  
  23. // Route::any('multy2',function(){
  24. // return 'multy2';
  25. // });
  26.  
  27. // //路由参数
  28. // Route::get('user/{id}',function($id){
  29. // return 'User-'.$id.'id';
  30. // })->where('id','[\d]*');
  31.  
  32. // Route::get('user/{name?}',function($name='helloJiu'){
  33. // return 'User-'.$name;
  34. // })->where('name','[A-Za-z]*');
  35.  
  36. // Route::get('user/{id}/{name}',function($id,$name='HL'){
  37. // return 'user-id-name'.$id.$name;
  38. // })->where(['name'=>'[A-Z]*','id'=>'[\d]*']);
  39.  
  40. //路由别名
  41. // Route::get('user/center',['as'=>'center',function(){
  42. // return route('center');
  43. // }]);
  44.  
  45. //路由群组
  46. Route::group(['prefix' => 'people'], function(){
  47.  
  48. Route::get('member/index','People\MemberController@index');
  49. Route::get('member/model','People\MemberController@model');
  50. Route::get('student/index','People\StudentController@index');
  51. Route::get('student/add','People\StudentController@insert');
  52. Route::get('student/update','People\StudentController@update');
  53. Route::get('student/select','People\StudentController@select');
  54. Route::get('student/delete','People\StudentController@delete');
  55.  
  56. //查询构造器路由
  57. Route::get('student/qbAdd','People\StudentController@qbAdd');
  58. Route::get('student/qbUpdate','People\StudentController@qbUpdate');
  59. Route::get('student/qbDelete','People\StudentController@qbDelete');
  60. Route::get('student/qbSelect','People\StudentController@qbSelect');
  61. Route::get('student/qbSelect','People\StudentController@qbSelect');
  62. Route::get('student/qbSelectJH','People\StudentController@qbSelectJH');
  63.  
  64. //ORM路由
  65. Route::get('student/ormIndex','People\StudentController@ormIndex');
  66. Route::get('student/ormAddByAttr','People\StudentController@ormAddByAttr');
  67. Route::get('student/ormAddByCreate','People\StudentController@ormAddByCreate');
  68. Route::get('student/ormSelect','People\StudentController@ormSelect');
  69. Route::get('student/ormUpdate','People\StudentController@ormUpdate');
  70. Route::get('student/ormDelete','People\StudentController@ormDelete');
  71.  
  72. //模板练习路由
  73. Route::get('student/section1','People\StudentController@section1');
  74. Route::get('student/urlTest',[
  75. 'as' => 'url',
  76. 'uses' => 'People\StudentController@urlTest',
  77. ]);
  78.  
  79. Route::get('index',function(){
  80. return view('People.layout.layout');
  81. });
  82.  
  83. });
  84.  
  85. //http://www.hfj110.com/laravel/public/index.php/member/user/center
  86.  
  87. //路由中输出视图
  88. Route::get('view',function(){
  89. return view('welcome');//输出welcome.html
  90. });
  91. //绑定控制器MemberController::info()
  92. Route::get('member/info','MemberController@info');
  93. Route::any('member/info', [
  94. 'uses' => 'MemberController@info',
  95. 'as' => 'memberinfo',
  96.  
  97. ]);
  98.  
  99. Route::any('getID/{id}',['uses'=>'MemberController@getID'])
  100. ->where('id','[\d]*');

  

  

laravel-模板引擎Blade的更多相关文章

  1. Laravel 模板引擎Blade中标签详细介绍

    这篇文章主要介绍了Laravel模板引擎Blade中section的一些标签的区别介绍,需要的朋友可以来看看. Laravel 框架中的Blade模板引擎很好用,但是官方文档介绍的并不详细,我接下来将 ...

  2. Laravel模板引擎Blade中section的一些标签的区别介绍

    Laravel 框架中的 Blade 模板引擎,很好用,但是在官方文档中有关 Blade 的介绍并不详细,有些东西没有写出来,而有些则是没有说清楚.比如,使用中可能会遇到这样的问题: 1.@yield ...

  3. laravel使用的模板引擎 blade

    使用blade引擎的话必须在控制器中使用use   Blade

  4. lavarel模板引擎blade学习

    blade 模板学习 特点 主要的两个优点是:模板继承和区块 继承页面布局 布局文件(layout.php) + 详情文件 (page.php) 的组合,即一般到具体的组合.在blade文件之中的体现 ...

  5. Laravel中的模板引擎Blade

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. php模板引擎之blade

    一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...

  7. laravel框架总结(二) -- blade模板引擎

    ## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...

  8. laravel Blade 模板引擎

    与视图文件紧密关联的就是模板代码,我们在视图文件中通过模板代码和 HTML 代码结合实现视图的渲染.和很多其他后端语言不同,PHP 本身就可以当做模板语言来使用,但是这种方式有很多缺点,比如安全上的隐 ...

  9. laravel框架之blade模板引擎

    ## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...

  10. PHP laravel 5.0 Blade 模板引擎 Api使用备注

    PHP laravel 5.0 Blade 模板引擎 Api使用备注 /** * PHP laravel 5.0 Blade 模板引擎 Api使用备注 **/ //子模版中开头,调用@extends( ...

随机推荐

  1. Linux - Eclipse CDT + GCC 安装(2014.10.2)

    Eclipse CDT + GCC 安装 (2014.10.2) 本文地址:http://blog.csdn.net/caroline_wendy 1. 安装Eclipse,在官方站点下载Eclips ...

  2. 内部类之.this&&.new

    一..this 我们都知道this是指当前类中的对象本身,但是在内部类中需要指明外部类时,this不再起作用,那应该怎么做呢?下面,让我们看看: public class DotThis { void ...

  3. Python enumerate函数

    enumerate函数接受一个可遍历的对象,如列表.字符串,可同时遍历下标(index)及元素值(value) >>> a = ['aaa','bbb','ccc',1235] &g ...

  4. RedHat下GCC及G++的安装

    GCC的安装: 切换到安装光盘目录下: #mount /dev/cdrom    /mnt/cdrom #cd /mnt/cdrom 安装GCC依赖的*rpm程序,必须按照顺序依次执行: #rpm - ...

  5. CSS投影实现方式

    备用素材: 1.png    shadow.png 第一种方式: 利用负边距实现 最终效果图: <!DOCTYPE html> <html lang="en"&g ...

  6. C#异步编程的实现方式——ThreadPool线程池

    在需要创建的线程很多,且都是比较小的线程的情况下,可以使用线程池(ThreadPool类).ThreadPool是一个静态方法,提供了对一个线程集合的操作,它会在线程数不足时增加线程,空闲线程数过多时 ...

  7. js基本类型

    1.undefined 1)var a;//没有赋值的时候就是undefined 2)undefined派生自null,alert(undefined==null)//true 虽然这上条语句是一样, ...

  8. AjaxPro.2.dll使用方法简介

    1.添加对 AjaxPro.2.dll 的引用 2.在 webconfig 中 system.web 节点下 进行如下配置 <httpHandlers> <add verb=&quo ...

  9. jq原创弹出层折叠效果

    弹出层效果很多网站上都用到,今天就整理最近项目里用到的一个小效果,点击折叠弹出一个层给用户填写信息.弹出层代码都是jq动态创建,每个人写法都不一样,需求也不一样,所有选择符合自已的即可. html: ...

  10. Typecho中文验证码Captcha插件

    前言实在是受不了每天都要删除掉上百条的垃圾评论,干脆自己做了个验证码插件,顺带做的完善了些,分享给大家. 本插件是在评论验证码插件基础上完善而来.所不同的是,采用了最新的securimage 3.0. ...