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获得当前的脚本网址
Dec 10 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
php实现邮件发送并带有附件
Jan 24 PHP
php实现文件下载实例分享
Jun 02 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
php实现的递归提成方案实例
Nov 14 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 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 include,include_once,require,require_once
2008/09/05 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript 变量作用域 代码分析
2009/06/26 Javascript
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
JavaScript中的return语句简单介绍
2015/12/07 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
python3中布局背景颜色代码分析
2020/12/01 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
座谈会主持词
2014/03/20 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
推广普通话主题班会
2015/08/17 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle