blade模板引擎
1Blade模板引擎简介以及模板继承的使用
@1 Blade是laravel提供的一个既简单又强大的模板引擎
@2 和其他流行的PHP模板引擎不一样,Blade并不限制
你在视图(view)中使用原生PHP代码
@3 所有的Blade视图页面都将被编译成原生PHP代码并
缓存起来,除非你的模板文件被修改了,否则不会重新编译
1.1模板继承
section()
yield()
@section和@yield的区别
@section既可以单独显示父模板的默认内容,也可以单独显示子模板的新内容,
通过@parent还可以同时显示父子模板中的内容
而@yield只能显示其中一个,子模板不定义,就用父模板默认的,子模板定义,
父模板的内容会被覆盖,通过@parent也不能显示。
在控制器中写方法
public function section1()
{
return view('student.section1');
}
@extends用来继承使用
extends
parent
layouts模板
<!DOCTYPE html>
<html lang="en">
<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>
具体的继承使用
@extends ('layouts')
@section('header')
@parent
header
@stop
@section('sidebar')
@parent
sidebar
@stop
@section('content')
content
@stop
2.基础语法以及include的使用
@1 模板中输出变量
@2 模板中调用PHP代码
@3 原样输出
@4 模板中的注释
@5 引入子视图include的使用
<!--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)?'true':'false'}}</p>
<p>{{var_dump($arr)}}</p>
<p>{{isset($name) ? $name:'default'}}</p>
<p>{{$name1 or 'default'}}</p>
<!--3.原样输出-->
<p>@{{$name}}</p>
{{--4.模板中的注释 模板的注释在网页中看不到,html的可以看到--}}
{{--5.引入子视图include--}}
@include('student.common1',['message'=>'我是错误信息'])//可以传值
3.流程控制
if
unless//相当于if取反
for
foreach以及forelse
@if($name == 'sean')
I'm sean.
@elseif($name == 'imooc')
I'm imooc.
@else
Who am I?
@endif
<br>
@if(in_array($name,$arr))
ture
@else
false
@endif
<br>
@unless($name != 'sean')
I'm sean
@endunless
<br>
{{-- @for($i=0;$i<10;$i++)
<p>{{$i}}</p>
@endfor--}}
{{--@foreach($students as $student)
<p>{{$student->name}}</p>
@endforeach
<br>--}}
@forelse($students as $student)
<p>{{$student->name}}</p>
@empty
<p>null</p>
@endforelse
4.模板中的URL
url() 通过路由的名称生成url
action() 通过指定控制器以及方法名生成url
route() 通过路由的别名生成url
//url跟route用的比较多,因为短用着方便
先在控制器中写方法
public function urlTest()
{
return 'urlTest';
}
然后在路由中加路由并且起别名
Route::any('url',['as'=>'url','uses'=>'StudentController@urlTest']);
三种方法
<a href="{{url('url')}}">url()</a>
<br>
<a href="{{action('StudentController@urlTest')}}">action()</a>
<br>
<a href="{{route('url')}}">route()</a>
一般来说可以完整的写一个layouts.blade.php
@extends('common.layouts')
@section('content')
然后重写中间的
@stop
laravel中的blade模板
最新推荐文章于 2024-07-16 21:08:41 发布