Laravel 模版 blade

Larave 使用的是blade模版

模版语法

  1. 输出变量
1
{{ $data }}
  1. if 判断
1
2
@if()
@endif
  1. foreach 循环
1
2
@foreach()
@endforeach

参数传递

控制器文件

1
2
3
$data1 = 'test';
$data2 = array('a', 'b');
return view('template', compact('data1', 'data2'));

模版文件

1
2
3
4
5
{{ $data1 }}

@foreach ($data2 as $d)
{{ $d->field1 }}
@endforeach

继承模型

使用的关键词有 extents/section/yield/content

公用的模版 resources/views/layout/main.blade.php

1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html lang="zh-CN">
<head>
</head>
<body>
@yield("content")
</body>
</html>

控制器渲染的模版 resources/views/post/index.blade.php

1
2
3
4
5
@extends("layout.main")

@section("content")
<!--控制器渲染的模版内容-->
@endsection

引入视图 include

公用的模版 resources/views/layout/main.blade.php

1
2
3
4
5
6
7
8
<!DOCTYPE html>
<html lang="zh-CN">
<head>
</head>
<body>
@include('layout.footer')
</body>
</html>

公用footer的模版 resources/views/layout/footer.blade.php

1
2
3
<footer class="blog-footer">
<!-- code -->
</footer>

时间格式

参考文档: https://carbon.nesbot.com/docs/

模型返回的时间不是字符串是一个Carbon类型

e.g. 时间格式为 May 14, 2019

1
{{ $post->created_at->toFormattedDateString() }}

字符串截取

1
{{ str_limit($str, 长度(数字), '用此参数字符串展示多出的部分') }}

输出html文本

1
{!! $html !!}

视图合成器

1
2
3
4
// Using Closure based composers...
View::composer('dashboard', function($view){
//
});

一般放在 app\Providers\AppServiceProvider.php 文件中的 boot() 方法中

第一个参数是要使用的模版名称

第三个参数是渲染到模版数据的变量

adminLTE主题下载

1
composer require "almasaeed2010/adminlte=~2.0"

复制 vendor/almasaeed2010/adminlte 文件夹到 public 目录下