Laravel基础篇学习笔记(三):Blade模板引擎
2017-02-10 17:30
671 查看
1)Blade模板引擎简介及模板继承的使用
定义一个父模板: laravel/resources/views/layouts.blade.phpyield:展示某个指定section的内容;在声明中只定义了一个视图片段,没有任何内容,不可扩展; section:定义一个视图片段;既可以在页面布局中定义一个视图片段,也可以有内容,还可以被子模板扩展;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>轻松学会Laravel - @yield('title')</title> <style> .header {width: 1000px; height: 150px; margin: 0 auto; background: #f5f5f5; border: 1px solid #ddd;} .main {width: 1000px; height: 300px; margin: 0 auto; margin-top: 15px; clear: both;} .main .sidebar {float:left; width:20%; height:inherit; background: #f5f5f5; border:1px solid #ddd;} .main .content {float:right; width:75%; height:inherit; background: #f5f5f5; border:1px solid #ddd;} .footer {width:1000px; height:150px; margin:0 auto; margin-top: 15px; background: #f5f5f5; border:1px solid #ddd;} </style> </head> <body> <div class="header"> @section('header') 头部 @show </div> <div class="main"> <div class="sidebar"> @section('sidebar') 侧边栏 @show </div> <div class="content"> @yield('content', '主要内容') </div> </div> <div class="footer"> @section('footer') 底部 @show </div> </body> </html>
控制器路径: laravel/app/Http/Controllers/StudentController.php
return view('student.section1');
新建模板路径: laravel/resources/views/student/section1.blade.php
@extends('layouts') <!-- 继承第一个定义的视图。如果需要继承的模板不是设置在view目录下,有文件夹存在,则可以:@extends('文件夹名.模板名') --> @section('header') @parent <!-- 父模板的内容也输出 --> header @stop @section('sidebar') header @stop @section('content') <!-- 虽然父模板设置成 yield,但是仍用 @section() 控制 --> content @stop
2)基础语法及include的使用
控制器路径:laravel/app/Http/Controllers/StudentController.php$name = 'sean'; $arr = ['sean', 'imooc']; // return view('student/section1'); 用斜线也行 return view('student.section1', [ 'name' => $name, 'arr' => $arr, ]);
模板路径:laravel/resources/views/student/section1.blade.php
@section('content') content <!-- 1. 模板中输出PHP变量 --> <p>{{$name}}</p> <!-- 2. 模板中调用PHP代码 --> <p>{{ time() }}</p> <p>{{ date('Y-m-d H:i:s', time())}}</p> <p>{{ in_array($name, $arr) }}</p> <p>{{ var_dump($arr) }}</p> <p>{{ isset($name) ? $name : 'default' }}</p> <!-- <p> <?php echo isset($name) ? $name : 'default' ?> </p> --> <p>{{ $name1 or 'default' }}</p> <!-- 3. 原样输出 --> <p>@{{ $name }}</p> {{-- 4. 模板中的注释 --}} {{-- 5. 引入子视图 include --}} @include('student.common1', ['message' => '我是错误信息']) @stop
引入子视图模板路径:laravel/resources/views/student/common1.blade.php
<p>我是include {{ $message }}</p>
3)流程控制
模板路径:laravel/resources/views/student/section1.blade.php<!-- if 流程控制 --> @if ($name == 'sean') I'm sean @elseif ($name == 'imooc') I'm imooc @else Who am I? @endif <!-- 可在流程控制里直接使用PHP函数 --> @if (in_array($name, $arr)) true @else false @endif <!-- if 的取反 --> @unless( $name != 'sean') I'm sean @endunless <!-- for 流程控制 --> <!-- @for ($i=0; $i < 10; $i++) <p>{{ $i }}</p> @endfor --> <!-- foreach 流程控制 --> @foreach($students as $student) <p>{{ $student->name }}</p> @endforeach <!-- forelse,foreach变种,有数据则输出,没数据则empty --> @forelse($students as $stu) <p>{{ $stu->name }}</p> @empty <p>null</p> @endforelse
4) 模板中URL
加上一条路由,路由名称为urlTest,路由别名为
url,路由指向
StudentController@urlTest
Route::any('urlTest', ['as' => 'url', 'uses' => 'StudentController@urlTest']);
控制器路径:laravel/app/Http/Controllers/StudentController.php
public function section1() { return view('student.section1'); } public function urlTest() { return 'urlTest'; }
模板路径:laravel/resources/views/student/section1.blade.php
以下超链接都会链接到:http://192.168.2.110/laravel/public/urlTest
<!-- url() 通过路由的名称生成url --> <a href="{{ url('urlTest') }}">url()</a> <!-- action() 通过指定控制器和方法名生成url --> <a href="{{ action('StudentController@urlTest') }}">action()</a> <!-- route() 通过路由的别名生成url --> <a href="{{ route('url') }}">route()</a>
模板路径:laravel/resources/views/student/common1.blade.php
<p>我是include {{ $message }}</p>
相关文章推荐
- workerman结合laravel开发在线聊天应用的示例代码
- 简单对比分析Ruby on Rails 和 Laravel
- laravel安装zend opcache加速器教程
- 使用 PHPStorm 开发 Laravel
- 详谈PHP程序Laravel 5框架的优化技巧
- Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
- 示例详解Laravel重置密码代码重构
- laravel学习教程之关联模型
- laravel学习教程之存取器
- 探究Laravel使用env函数读取环境变量为null的问题
- Laravel 5.3 学习笔记之 配置
- 跟我学Laravel之请求与输入
- Laravel搭建后台登录系统步骤详解
- Laravel 5.3 学习笔记之 错误&日志
- Laravel中间件实现原理详解
- laravel创建类似ThinPHP中functions.php的全局函数
- 跟我学Laravel之视图 & Response
- Laravel实现自定义错误输出内容的方法
- 详解Laravel视图间共享数据与视图Composer
- php的laravel框架快速集成微信登录的方法