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 similar_text 字符串的相似性比较函数
May 26 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
php对称加密算法示例
May 07 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
PHP7多线程搭建教程
Apr 21 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
Laravel 模型关联基础教程详解
Sep 17 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 开源框架22个简单简介
2009/08/24 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
python获得图片base64编码示例
2014/01/16 Python
详解Python的单元测试
2015/04/28 Python
python监控文件或目录变化
2016/06/07 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
基于Python的PIL库学习详解
2019/05/10 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python解析json代码实例解析
2019/11/25 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
外语系毕业生自荐信范文
2013/12/16 职场文书
门卫工作岗位职责
2013/12/17 职场文书
美发活动策划书
2014/01/14 职场文书
调解员先进事迹材料
2014/02/07 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
学生检讨书
2015/01/27 职场文书
公司规章制度范本
2015/08/03 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS