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操作mysql函数详解,mysql和php交互函数
May 19 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
php获取今日开始时间和结束时间的方法
Feb 27 PHP
php+ajax实现文件切割上传功能示例
Mar 03 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
用来给图片加水印的PHP类
2008/04/09 PHP
PHP中设置时区方法小结
2012/06/03 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
js定时器实例分享
2016/12/20 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
python3 拼接字符串的7种方法
2018/09/12 Python
从0开始的Python学习016异常
2019/04/08 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python文件路径操作方法总结
2020/12/21 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
荷兰本土平价百货:HEMA
2017/10/23 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
中专毕业生自荐信
2013/11/16 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python
Django框架中视图的用法
2022/06/10 Python