模板继承的使用
- section -- 可以子模板扩展,也可以有内容
- yield -- 想想成占位符,用子模板去实现它, 不可扩展
- extends
- parent
新建 layouts.blade.php 公共视图文件
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css">
<title>时间计算 -- @yield('title')</title>
</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>
在student目录下创建section1.blade.php 视图文件
@extends('layouts'); // 继承哪个模板
@section('header')
@parent //继承header内原有的内容
header //重写header位置模板
@stop
@section('sidebar')
sidebar
@stop
@section('content')
content
@stop
//渲染模板
return view('student.section1'); // student目录下的section1模板,也可以用student/section1
基础语法及include的使用
- 模板中输出变量
@section('content') <p>{{ $name }}</p> @stop
- 模板中调用PHP代码
@section('content') <p>{{ time() }}</p> <p>{{ date('Y-m-d H:i:s , time()) }}</p> <p>{{ in_array($name, $arr) ? 'true' : 'false' }}</p> <p>{{ var_dump($arr) }}</p> <p>{{ isset($name) ? $name : 'default' }}</p> <p>{{ $name or 'default' }}</p> @stop
- 原样输出
@section('content') <p>@{{ $name }}</p> @stop
- 模板中的注释
@section('content') {{-- 模板注释,在页面不会显示 --}} <!-- html注释,在模板中会显示 --> @stop
- 引入子视图include的使用
@include('student.common1') //向子视图传值 @include('student.common1',['message'=>'我是错误信息'])
流程控制
-
if
@if ($name == 'sean') i'm sean @elseif ($name =='imooc') im imooc @else who i am @endif @if (in_array($name, $arr)) true @else false @endif
- unless if的取反
@unless ($name == 'sean') im sean @endunless
- for
@for ($i=0;$i<10;$i++) {{$i}} @endfor
-
foreach
@foreach($students as $student) <p>{{ $student->name }}</p> @endforeach
-
forelse
@forelse($students as $student) <p>{{ $student->name }}</p> @empty <p>null</p> @endforelse
模板中的URL
Route::any('url', ['as'=>'url', 'uses' => 'StudentController@urlTest'])
- url() -- 通过路由名称生成URL
<a href="{{ url('url') }}">url()</a>
- action() --指定控制器和方法名生成URL
<a href="{{ action('StudentController@urlTest') }}">action()</a>
- route() -- 通过路由的别名生成URL
<a href="{{ route('url') }}">action()</a>