课程内容

视图变量传值和输出

传值

view('视图文件位置',变量数组对);
view('index',['name'=>'黑白课堂'])

直接使用"{{ 变量名 }}"

{{ $name }} //直接使用"{{ 变量名 }}"

判断是否是否存在

if(view()->exists('index')){

}

共享数据

view()->share('变量名字','值')

view()->share(数组对)

视图合成器

他是针对整个视图的的生效
个人建议,不要大量使用,最后就是不要用,因为你的不小心写错会导致整个系统很奔溃。

View::composer(
    '视图名字', '视图类或者是匿名函数'
);

模板布局

布局文件里面使用

 @section('名字')

  @show
  或者
  @yield('名字')

内容文件,继承模板布局文件

@extends('布局文件')

@section('content')
@endsection()//之前布局使用@show的,这个要注意下,别写错

输出数据

Blade 中 {{ }} 语句自动经由 PHP 的 htmlspecialchars
显示非转义字符

 {!! $name !!}.

渲染 JSON

 @json($array);

跟其他javascript 冲突

比如vue 输出变量也是{{}}
那么你要保持用VUE,需要前面加上

@verbatim

vue代码片段

@endverbatim

如果单个可以使用@

@{{ name }}

其他语法

if

@if (count($records) === 1)
    I have one record!
@elseif (count($records) > 1)
    I have multiple records!
@else
    I don't have any records!
@endif

是否创建了变量和空

@isset($records)
    // $records is defined and is not null...
@endisset

@empty($records)
    // $records is "empty"...
@endempty

身份验证指令

@auth
    // The user is authenticated...
@endauth

@guest
    // The user is not authenticated...
@endguest

switch

@switch($i)
    @case(1)
        First case...
        @break

    @case(2)
        Second case...
        @break

    @default
        Default case...
@endswitch

循环

@for ($i = 0; $i < 10; $i++)
    The current value is {{ $i }}
@endfor

@foreach ($users as $user)
    <p>This is user {{ $user->id }}</p>
@endforeach

@forelse ($users as $user)
    <li>{{ $user->name }}</li>
@empty
    <p>No users</p>
@endforelse

@while (true)
    <p>I'm looping forever.</p>
@endwhile

注释

{{-- 代码 --}}

编写php

@php
    //
@endphp

表单使用

  • @csrf
  • @method('PUT')
  • 错误输出
@error('title')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror

引入其他视图

  @include('shared.errors')

被包含的视图不仅会继承父视图的所有可用数据,还能够以数组形式向被包含的视图传递额外数据

@include('view.name', ['some' => 'data']);

//不存在不报错
@includeIf('view.name', ['some' => 'data'])

//条件

@includeWhen($boolean, 'view.name', ['some' => 'data'])

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。