Laravel 5框架学习之Blade 简介


Posted in PHP onApril 08, 2015

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

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

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
  <div class="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 中添加:

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

新建视图 pages/contact.blade.php

@extends('layout')

@section('content')
  <h1>Contact Me!</h1>
@stop

Check it out!

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

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
  <div class="container">
    @yield('content')
  </div>

  @yield('footer')
</body>
</html>

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

@extends('layout')

@section('content')
  <h1>Contact Me!</h1>
@stop

@section('footer')
  <script>
    alert('Contact from scritp')
  </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 等。

public function about()
  {
    $people = [
      'zhang san',
      'li si',
      'wang wu'
    ];
    return view('pages.about', compact('people'));
  }
@extends('layout')

@section('content')
  <h1>Person:</h1>
  <ul>
    @foreach($people as $person)
      <li>{{ $person }}</li>
    @endforeach
  </ul>
@stop

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

$people = [];

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

@extends('layout')

@section('content')
  @if (count($people))
    <h1>Person:</h1>
    <ul>
      @foreach($people as $person)
        <li>{{ $person }}</li>
      @endforeach
    </ul>
  @endif

  <h2>Other info</h2>
@stop

That's better.

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

PHP 相关文章推荐
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
php中AES加密解密的例子小结
Feb 18 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
php简单分页类实现方法
Feb 26 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
详解PHP swoole process的使用方法
Aug 26 PHP
PHP程序员学习使用Swoole的理由
Jun 24 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 #PHP
Laravel 5框架学习之向视图传送数据
Apr 08 #PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 #PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 #PHP
php生成圆角图片的方法
Apr 07 #PHP
php按单词截取字符串的方法
Apr 07 #PHP
php生成zip文件类实例
Apr 07 #PHP
You might like
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
js控制frameSet示例
2013/09/10 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
JS中递归函数
2016/06/17 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
详解Python字符串对象的实现
2015/12/24 Python
Python卸载模块的方法汇总
2016/06/07 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python处理大日志文件
2019/07/23 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
Delphi软件工程师试题
2013/01/29 面试题
毕业研究生的自我鉴定
2013/11/30 职场文书
将相和教学反思
2014/02/04 职场文书
主要负责人任命书
2014/06/06 职场文书
党员志愿者活动方案
2014/08/28 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
python异常中else的实例用法
2021/06/15 Python
 Python 中 logging 模块使用详情
2022/03/03 Python