Laravel 5框架学习之Blade 简介
在多个页面中我们可能包含相同的内容,像是文件头,链接的css或者js等。我们可以利用布局文件完成这个功能。
让我们新建一个布局文件,例如views/layout.blade.php
<!doctypehtml> <htmllang="en"> <head> <metacharset="UTF-8"> <title>Document</title> <linkrel="stylesheet"href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"> </head> <body> <divclass="container"> @yield('content') </div> </body> </html>
我们创建了不解的结构,引入了bootstrap,注意@yield是blade的布局占位符,未来我们的页面内容将填充到这里,修改about.blade.php
@extends('layout') @section('content') <h1>About{{$first}}{{$last}}</h1> @stop
上面的代码表示我们使用布局文件layout.blade.php,然后在content段中添加内容。
在routes.php中添加:
Route::get('about','PagesController@about'); Route::get('contact','PagesController@contact');
在PagesController.php中添加:
publicfunctioncontact(){ returnview('pages.contact'); }
新建视图pages/contact.blade.php
@extends('layout') @section('content') <h1>ContactMe!</h1> @stop
Checkitout!
在布局文件中我们可以添加多个@yield,比如在layout.blade.php中添加@yield('footer'):
<!doctypehtml> <htmllang="en"> <head> <metacharset="UTF-8"> <title>Document</title> <linkrel="stylesheet"href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"> </head> <body> <divclass="container"> @yield('content') </div> @yield('footer') </body> </html>
比如contact.blade.php中有一段脚本,就可以放在这个段中。
@extends('layout') @section('content') <h1>ContactMe!</h1> @stop @section('footer') <script> alert('Contactfromscritp') </script> @stop
访问contact会有对话框,而about仍然是普通显示
使用@if进行判断
@extends('layout') @section('content') @if($first='Zhang') <h1>Hello,Zhang</h1> @else <h1>Hello,nobody</h1> @endif @stop
也可以视同@unless等同于if!,还有@foreach等。
publicfunctionabout() { $people=[ 'zhangsan', 'lisi', 'wangwu' ]; returnview('pages.about',compact('people')); } @extends('layout') @section('content') <h1>Person:</h1> <ul> @foreach($peopleas$person) <li>{{$person}}</li> @endforeach </ul> @stop
有一种情况,数据可能来自数据库,集合可能是空,像是这样:
$people=[];
处理这种情况,请添加@if处理
@extends('layout') @section('content') @if(count($people)) <h1>Person:</h1> <ul> @foreach($peopleas$person) <li>{{$person}}</li> @endforeach </ul> @endif <h2>Otherinfo</h2> @stop
That'sbetter.
以上所述就是本文的全部内容了,希望能够对大家学习Laravel5有所帮助。