首页 > 开发 > PHP > 正文

Laravel 5框架学习之Blade 简介

2024-05-04 23:34:01
字体:
来源:转载
供稿:网友

本文给大家带来的是Laravel5框架学习系列文章的第4篇,主要向大家简单介绍下Blade,为什么要介绍它呢,因为laravel的模版引擎采用了blade模版引擎,so....

在多个页面中我们可能包含相同的内容,像是文件头,链接的css或者js等。我们可以利用布局文件完成这个功能。

让我们新建一个布局文件,例如 views/layout.blade.php

 

 
  1. <!doctype html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6. <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"
  7. </head> 
  8. <body> 
  9. <div class="container"
  10. @yield('content'
  11. </div> 
  12. </body> 
  13. </html> 

我们创建了不解的结构,引入了bootstrap,注意 @yield 是blade的布局占位符,未来我们的页面内容将填充到这里,修改 about.blade.php

 

 
  1. @extends('layout'
  2.  
  3. @section('content'
  4.  
  5. <h1>About {{ $first }} {{ $last }}</h1> 
  6.  
  7. @stop 

上面的代码表示我们使用布局文件 layout.blade.php, 然后在 content 段中添加内容。

在 routes.php 中添加:

 

 
  1. Route::get('about''PagesController@about'); 
  2. Route::get('contact''PagesController@contact'); 

在 PagesController.php 中添加:

 

 
  1. public function contact() { 
  2. return view('pages.contact'); 

新建视图 pages/contact.blade.php

 

 
  1. @extends('layout'
  2.  
  3. @section('content'
  4. <h1>Contact Me!</h1> 
  5. @stop 

Check it out!

在布局文件中我们可以添加多个 @yield , 比如在 layout.blade.php 中添加 @yield('footer') :

 

 
  1. <!doctype html> 
  2. <html lang="en"
  3. <head> 
  4. <meta charset="UTF-8"
  5. <title>Document</title> 
  6. <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"
  7. </head> 
  8. <body> 
  9. <div class="container"
  10. @yield('content'
  11. </div> 
  12.  
  13. @yield('footer'
  14. </body> 
  15. </html> 

比如 contact.blade.php 中有一段脚本,就可以放在这个段中。

 

 
  1. @extends('layout'
  2.  
  3. @section('content'
  4. <h1>Contact Me!</h1> 
  5. @stop 
  6.  
  7. @section('footer'
  8. <script> 
  9. alert('Contact from scritp'
  10. </script> 
  11. @stop 

访问contact会有对话框,而about仍然是普通显示

使用 @if 进行判断

 

 
  1. @extends('layout'
  2.  
  3. @section('content'
  4. @if ($first = 'Zhang'
  5. <h1>Hello, Zhang</h1> 
  6. @else 
  7. <h1>Hello, nobody</h1> 
  8. @endif 
  9. @stop 

也可以视同 @unless 等同于 if !, 还有 @foreach 等。

 

 
  1. public function about() 
  2. $people = [ 
  3. 'zhang san'
  4. 'li si'
  5. 'wang wu' 
  6. ]; 
  7. return view('pages.about', compact('people')); 
  8. @extends('layout'
  9.  
  10. @section('content'
  11. <h1>Person:</h1> 
  12. <ul> 
  13. @foreach($people as $person
  14. <li>{{ $person }}</li> 
  15. @endforeach 
  16. </ul> 
  17. @stop 

有一种情况,数据可能来自数据库,集合可能是空,像是这样:

复制代码代码如下:

$people = [];

处理这种情况,请添加 @if 处理

 

 
  1. @extends('layout'
  2.  
  3. @section('content'
  4. @if (count($people)) 
  5. <h1>Person:</h1> 
  6. <ul> 
  7. @foreach($people as $person
  8. <li>{{ $person }}</li> 
  9. @endforeach 
  10. </ul> 
  11. @endif 
  12.  
  13. <h2>Other info</h2> 
  14. @stop 

That's better.

以上所述就是本文的全部内容了,希望能够对大家学习Laravel5有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表