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 array_map()数组函数使用说明
Jul 12 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
PHP采集类Snoopy抓取图片实例
Jun 19 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 06 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浮点数的一个常见问题
2016/03/10 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
Python深入学习之上下文管理器
2014/08/31 Python
Python第三方库的安装方法总结
2016/06/06 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
PyTorch预训练的实现
2019/09/18 Python
python 利用zmail库发送邮件
2020/09/11 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
初二学习计划书范文
2014/04/27 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
2014年材料员工作总结
2014/11/19 职场文书
2014年个人年终总结
2015/03/09 职场文书
幼儿园庆元旦主持词
2015/07/06 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
Linux系统下安装PHP7.3版本
2021/06/26 PHP
spring 项目实现限流方法示例
2022/07/15 Java/Android