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设计模式之责任链模式的深入解析
Jun 13 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php获取目标函数执行时间示例
Mar 04 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP7内核之Reference详解
Mar 14 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
一段php加密解密的代码
2006/10/09 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python实现分数序列求和
2020/02/25 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
什么是数组名
2012/05/10 面试题
值传递还是引用传递
2015/02/08 面试题
简历中自我评价范文3则
2013/12/14 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
家长对老师的感言
2014/03/11 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
光荣之路观后感
2015/06/12 职场文书
关于开学的感想
2015/08/10 职场文书
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
ant design vue的form表单取值方法
2022/06/01 Vue.js