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)
Nov 23 PHP
php采集速度探究总结(原创)
Apr 18 PHP
MySql中正则表达式的使用方法描述
Jul 30 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php删除指定目录的方法
Apr 03 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 PHP
php中yar框架实例用法讲解
Dec 27 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写MySQL数据 实现代码
2009/06/15 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
tensorboard显示空白的解决
2020/02/15 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
一套软件开发工程师笔试题
2015/05/18 面试题
经典广告词大全
2014/03/14 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
借款协议书范本
2014/04/22 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
校庆活动策划方案
2014/06/05 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
慈善募捐倡议书
2015/04/27 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
2016国培学习心得体会
2016/01/08 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
在CSS中使用when/else的方法
2022/01/18 HTML / CSS
正则表达式拆分url实例代码
2022/02/24 Java/Android