2016年10月5日 星期三

[Laravel 5 教程学习笔记] 五、Blade模版简介

上一篇笔记学习了如何向视图传送数据,这一篇将介绍一些更多关于Blade模版的知识。上一篇笔记中,创建blade模版时,需要往里面复制一大段的HTML代码,而每个模版中可能有很多内容是相同的,这时,我们可以利用一个布局模版来完成这些功能。
创建布局模版
我们到视图目录(/resources/views)中创建一个布局模版,这里我们命名为main.blade.php,这里是模版布局的代码:
  1. lang="en">
  2. charset="UTF-8">
  3. </span><span class="pln" style="box-sizing: border-box; color: rgb(255, 255, 255);">Document</span><span class="tag" style="box-sizing: border-box; color: rgb(137, 189, 255);">
  4. rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
  • class="container">
  • @yield('content')
  • 我们只需要创建一次这个文件,之后所有引用这个模版的文件都会生成一个@yield('content')位置供我们填充内容。我们修改about.blade.php模版
    1. @extends('main')
    2.  
    3. @section('content')
    4. About me</h1>
    5. {{ $first }}, {{ $second }}</p>
    6. @stop
    @extends('main')表示我们使用main.balde.php模版,@section('content') *** @stop中间的内容将被填充到@yield('content')的位置。之后刷新之前的页面,可以看到跟之前的结果是一样的。

    新建路由
    Routes.php中添加contact路由:
    1. Route::get('contact', 'PagesController@contact');
    PagesController.php中添加contact()方法:
    1. public function contact() {
    2. return view('pages.contact');
    3. }
    resources/views/pages/下创建contact.blade.php,并添加内容:
    1. @extends('main')
    2.  
    3. @section('content')
    4. Contact me</h1>
    5. @stop
    在浏览器中查看结果。

    创建多个@yield
    有时在一些视图中,我们可以需要引入一些额外的js文件或者其他内容,我们只需要创建另外一个@yield即可。修改main.blade.php
    1. lang="en">
    2. charset="UTF-8">
    3. </span><span class="pln" style="box-sizing: border-box; color: rgb(255, 255, 255);">Document</span><span class="tag" style="box-sizing: border-box; color: rgb(137, 189, 255);">
    4. rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
  • class="container">
  • @yield('content')
  •  
  • @yield('footer')
  • 比如contact.blade.php中需要加入一段JS代码:
    1. @extends('main')
    2.  
    3. @section('content')
    4. Contact me</h1>
    5. @stop
    6.  
    7. @section('footer')

    沒有留言:

    wibiya widget