Laravel的视图与Blade模板

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