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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
php适配器模式介绍
Aug 14 PHP
php实现邮件发送并带有附件
Jan 24 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
php分页查询mysql结果的base64处理方法示例
May 18 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 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中的float类型使用说明
2010/07/27 PHP
php检测url是否存在的方法
2015/04/14 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP强制转化的形式整理
2020/05/22 PHP
javascript第一课
2007/02/27 Javascript
javascript 面向对象编程基础 多态
2009/08/21 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
浅谈Python 参数与变量
2020/06/20 Python
房地产财务部员工岗位职责
2014/03/12 职场文书
预防传染病方案
2014/06/14 职场文书
烟台的海导游词
2015/02/02 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
运动会跳远广播稿
2015/08/19 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
2019银行竞聘书
2019/06/21 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android