多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> Blade 是由 Laravel 提供的非常简单但功能强大的模板引擎 ,[参考文档](https://xueyuanjun.com/post/8773.html) [TOC] ## Controller 中进行渲染 ~~~ public function index2(RenderInterface $render) { $links = Link::query()->paginate(10); return $render->render('index.index', ['links' => $links]); } ~~~ ## 注释 > 不同于 HTML 注释,Blade 注释并不会包含到 HTML 中被返回 ~~~ {{-- This comment will not be present in the rendered HTML --}} ~~~ ## 插槽输出 > 为了避免 XSS 攻击,会自动对数据进行转义 > 插槽里可以调用任何方法,进行返回值的显示 ~~~ {{ $name }} ~~~ ## 原生数据显示 ~~~ {!! $content !!} ~~~ ## 渲染 JSON 内容 > 有时候你可能会将数据以数组方式传递到视图再将其转化为 JSON 格式以便初始化某个 JavaScript 变量 ~~~ <script> var app = <?php echo json_encode($array); ?>; </script> ~~~ > 推荐使用Blade 的 @json 指令 ~~~ <script> var app = @json($array); </script> ~~~ ## If 语句 > 可以使用 @if , @elseif , @else 和 @endif 来构造 if 语句,这些指令的功能和 PHP 相同 ~~~ @if (count($records) === 1) I have one record! @elseif (count($records) > 1) I have multiple records! @else I don't have any records! @endif ~~~ ## 循环 ~~~ @for ($i = 0; $i < 10; $i++) The current value is {{ $i }} @endfor @foreach ($users as $user) @if ($user->type == 1) @continue @endif <li>{{ $user->name }}</li> @if ($user->number == 5) @break @endif @endforeach ~~~ ### $loop变量 ~~~ @foreach ($users as $user) @if ($loop->first) This is the first iteration. @endif @if ($loop->last) This is the last iteration. @endif <p>This is user {{ $user->id }}</p> @endforeach ~~~ > 如果你身处嵌套循环,可以通过 $loop 变量的 parent 属性访问父级循环 ~~~ @foreach ($users as $user) @foreach ($user->posts as $post) @if ($loop->parent->first) This is first iteration of the parent loop. @endif @endforeach @endforeach ~~~ > $loop 变量还提供了其他一些有用的属性 | 属性 | 描述 | | --- | --- | | `$loop->index` | 当前循环迭代索引 (从0开始) | | `$loop->iteration` | 当前循环迭代 (从1开始) | | `$loop->remaining` | 当前循环剩余的迭代 | | `$loop->count` | 迭代数组元素的总数量 | | `$loop->first` | 是否是当前循环的第一个迭代 | | `$loop->last` | 是否是当前循环的最后一个迭代 | | `$loop->depth` | 当前循环的嵌套层级 | | `$loop->parent` | 嵌套循环中的父级循环变量 |