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有所帮助。