Laravel的视图与Blade模板
温馨提示,篇幅不长,满满干货,建议收藏观看
1. 知识汇总
- 视图文件以
.blade.php
后缀结尾; - 传递数据给视图建议使用
with
关键字,如return view('home')->with('tasks', Task::all());
; - 在
AppServiceProvider
的boot
方法中使用share
关键字共享变量; - 分页器可以使用
simplePaginate
和paginate
方法进行实现,也可以自己定义; - blade模板的三种常见语法分别是:
{{ }}
渲染PHP变量,{!! !!}
渲染原生HTML代码,@
为前缀,用来执行一些像结构控制,继承的操作以及屏蔽渲染vue的变量; -
{{--注释内容--}}
用来注释一段PHP代码;
2. 控制结构
-
@if、@else、@elseif
用于做条件判断; -
@unless
相当于if
的取反操作; -
@isset、@empty
判断是否存在与是否为空; -
@switch
流程判断,与@case,@break,@default
相配合; -
@for、@foreach 和 @while
熟悉的循环结构; -
@forelse
与@empty
相配合,在@forelse($students as $student)
中相当于先判断$students
是否为真,若真则执行下面代码并进行foreach
循环,反之为空,执行@empty
中的代码。 -
@loop
变量通过固定属性访问相应的位置,如下表(来自laravel学院)
3. 模板继承与组件引用
- blade模板中用
@yield 和 @section/@show
实现布局文件中的定义插槽,@section/@show
可以用@parent
进行访问; - 继承使用
@extends 和 @section/@endsection
实现; - 通过
@include
引入组件; -
@each
指令可以循环单个组件; - 使用
@slot
可以定义一个指定区域,而使用component
可以对指定区域进行重写; - 除此之外还可以通过 View Composer 预设视图组件数据变量,自定义Blade指令等,这个暂不详解,属于高级内容;
参考网址:
https://laravelacademy.org/post/9664.html
https://laravelacademy.org/post/9663.html
https://laravelacademy.org/post/9662.html
https://laravelacademy.org/post/9661.html
https://laravelacademy.org/post/9660.html