在多个页面中我们可能包含相同的内容,像是文件头,链接的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.

Laravel 5 基础(四)- Blade 简介的更多相关文章

  1. python django基础四 ORM简介

    ORM,全称是object relation mapping.翻译过来,就是对象关系映射. 主要来学习MySQL操作,MySQL是一个软件.它的优点:1.免费 2.开源 pymysql,就是Mysql ...

  2. laravel框架基础知识总结

    一.laravel简介 laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全:以下是本人在学习过程中记录的laravel比较基础的资料,权当学习笔记,请大神们多多指教 ...

  3. FeWeb基础之JavaScript简介

    FeWeb基础之JavaScript简介 1.JavaScript的基本介绍 JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,它是通过嵌入或调入在标准的HTML语言中实现的.Ja ...

  4. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  5. laravel5.1框架基础之Blade模板继承简单使用方法分析

    本文实例讲述了laravel5.1框架基础之Blade模板继承简单使用方法.分享给大家供大家参考,具体如下: 模板继承什么用? 自然是增强基础页面的复用,有利于页面文档的条理,也便于更改多处使用的内容 ...

  6. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  7. 框架基础之Hibernate简介

    框架基础之Hibernate简介 1.什么是Hibernate? Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行非常轻量级的对象封装,使得程序员可以随心所欲地使用对象编程思维来 ...

  8. Bootstrap<基础四> 代码

    Bootstrap 允许您以两种方式显示代码: 第一种是 <code> 标签.如果您想要内联显示代码,那么您应该使用 <code> 标签. 第二种是 <pre> 标 ...

  9. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  10. SLAM+语音机器人DIY系列:(一)Linux基础——1.Linux简介

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

随机推荐

  1. CAKeyframeAnimation 旋转动画

  2. 数据结构【三】:简单优先队列PriorityQueue

    在数据结构[二]:简单阻塞队列BlockingQueue的基础上添加权限属性:priority,并控制enqueue时根据priority排序插入. 1.定义priority取值范围0~9 2.deq ...

  3. could not read data from '/Users/xxxx/myapp-Info.plist'

    xcode编译报错如下: could not read data from '/Users/iamme/Documents/XCode/myapp/myapp/myapp-Info.plist': T ...

  4. Jquery Validate验证是否为图片格式

    //验证是否为图片 jQuery.validator.addMethod("checkPic", function (value, element) { var filepath ...

  5. 查询score中选学多门课程的同学中分数为非最高分成绩的记录。

    20.查询score中选学多门课程的同学中分数为非最高分成绩的记录. select * from score a where sno in ( select sno from score group ...

  6. [wordpress] 输出一个过滤器绑定的方法

    参考了WordPress: How do I get all the registered functions for 'the_content' filter, function print_fil ...

  7. CSS3中渐变gradient详解

    这几天看了一本HTML5的书,里面对于页面的背景使用了大量的渐变效果,因此在这里写一些关于渐变Gradient的东西. CSS3中的Gradient有两种,分别是线性渐变(linear-gradien ...

  8. Table of Contents - Ehcache

    Ehcache 2.9.x API Developer Guide Key Classes and Methods Basic Caching Cache Usage Patterns Searchi ...

  9. Part 13 Cast and Convert functions in SQL Server

    Part 28 Cast and Convert functions in SQL Server

  10. HTML、JS、CSS之特殊字符

    可能这是冷知识了,并不为多数人知道像HTML.JS.CSS它们的特殊字符的写法,我也是在网上收录的在这里make一下: 箭头类 符号 UNICODE 符号 UNICODE HTML JS CSS HT ...