Laravel 은 blade 템 플 릿 엔진 을 통 해 보 기 를 렌 더 링 합 니 다.

laravel 은 블 레이 드 템 플 릿 엔진 을 보기 에 사용 하 는 렌 더 링 을 제공 합 니 다.블 레이 드 에 서 는 PHP 코드 를 직접 사용 할 수 있 고 블 레이 드 는 최종 적 으로 phop 캐 시 로 컴 파일 됩 니 다.블 레이 드 파일 이 수정 되 어야 다시 컴 파일 할 수 있 습 니 다.이 점 은 비용 을 절약 하여 응용 성능 을 향상 시 킬 수 있 습 니 다.blade 파일.blade.php 는 보기 파일 로 laravel 의 resource/views 디 렉 터 리 에 저 장 됩 니 다.
1.템 플 릿 정의
Blade 정의 템 플 릿 페이지 는 html 페이지 를 만 드 는 것 과 마찬가지 로 적당 한 위치 에서@section 또는@yield 를 통 해 자 리 를 차지 할 뿐 다른 페이지 가 템 플 릿 페이지 를 참조 할 때 내용 을 차지 하 는 위치 에 채 우 면 됩 니 다.

<html>
 <head>
  <title>@yield('title')</title>
 </head>
 <body>
  <header class="header">
   @section('header')
        <br>
   @show
  </header>
  <div class="middle">
   <aside class="aside">
         
    @yield('aside')
   </aside>
   <div class="content">
    @section('content')
          
    @show
   </div>
  </div>
  <footer class="footer">
       
   @yield('footer')
  </footer>
 </body>
</html>
section 과 yield 는 모두 자리 표시 자 입 니 다.그 차 이 는 템 플 릿 을 참조 할 때 yield 를 사용 할 때 지정 한 자리 표시 자 를 완전히 바 꾸 고,section 을 사용 할 때@parent 를 통 해@section()~@show 간 의 내용 을 보존 할 수 있 습 니 다.
Blade 에 외부 js,css 파일 을 도입 하려 면 상대 적 으로 Public 디 렉 터 리 의 절대적 인 경 로 를 사용 할 수 있 습 니 다.예 를 들 어 자체 bootstrap 을 도입 할 수 있 습 니 다.Public/css/app.css 에 있 습 니 다.
2.인용 템 플 릿
템 플 릿 을 참조 하려 면 먼저@extends()를 통 해 사용 할 템 플 릿 을 도입 해 야 합 니 다.템 플 릿 위 치 는 views 디 렉 터 리 에 비해.그리고@section()~@stop(템 플 릿 을 정의 할 때의@section~@show 와 구별)을 통 해 교체 할 내용 을 템 플 릿 의 지정 한 위치 에 채 웁 니 다.예 를 들 어 header 에 대응 하 는 section 을 채 우려 면:

@extends('template.layout')  {{--    views/template/layout.blade.php--}}

@section('title')

    

@stop

@section('header')    {{--   header      --}}

@parent      {{--       --}}

      

@stop
구성 요소 도입:@component 를 통 해 구성 요소 템 플 릿 을 도입 합 니 다.예 를 들 어 일반적인 오류 알림 구성 요소 alert 를 정의 합 니 다.

<div style="color: #ff5b5d;">
 <h5>{{$title}}</h5>
 {{$slot}}
</div>
페이지 에서 이 구성 요 소 를 사용 합 니 다:

@component('template.alert') {{--    views/template/alert.blade.php--}}
 @slot('title')    {{--        $title  --}}
  alert  
 @endslot
 alert    
@endcomponent
@component~@endcomponent 간 의 내용 은 구성 요소{{$slot}를 자동 으로 대체 합 니 다.대체 위 치 를 지정 하려 면@slot()~@endslot 를 통 해
하위 보기 도입:한 페이지 에서 Blade 하위 보 기 를 도입 하려 면@include()를 통 해

@include('template.child')
Blade 에서 출력 변 수 는{{$var}을 통 해 XSS 공격 을 피하 기 위해 PHP 의 htmlenities 함수 처 리 를 거 쳤 습 니 다.예 를 들 어 controller 에 view 를 도입 할 때 변수 인 자 를 입력 합 니 다.

public static function showBlade(){
 return view('Login.login',['var'=>'test']);
}
Blade 에서 이 변 수 를 사용 합 니 다.
변 수 는:{{isset($var)?$var:'기본 값'}}
때때로 우 리 는 블 레이 드 가 텍스트 를 해석 하지 않 기 를 바 랍 니 다.예 를 들 어 vue 에서 도{{}패키지 변 수 를 사용 합 니 다.블 레이 드 가 컴 파일 하 는 것 을 원 하지 않 습 니 다.이 때@:
원본 출력:@{$var}}
3.절차 제어
blade 는 페이지 의 렌 더 링 을 제어 하기 위해 프로 세 스 제어 문 구 를 제공 하여 페이지 의 렌 더 링 을 더욱 빠 르 고 이 제어 문 구 는 모두 PHP 와 매우 유사 합 니 다.
if 판단:

@if ($val >80)
   
@elseif ($val>60)
   
@else
    
@endif
순환:

@for ($i = 0; $i < 10; $i++)
 The current value is {{ $i }}
@endfor
 
@foreach ($users as $user)
 <p>This is user {{ $user->id }}</p>
@endforeach
switch 분기:

@switch($i)
 @case(1)
  First case...
  @break
 
 @case(2)
  Second case...
  @break
 
 @default
  Default case...
@endswitch
인증:@auth 와@guest 명령 은 현재 사용자 의 로그 인 여 부 를 신속하게 판단 하 는 데 사용 할 수 있 습 니 다.

@auth
 //      ...
@endauth
 
@guest
 //      ...
@endguest
이상 의 이 Laravel 은 Blade 템 플 릿 엔진 을 통 해 보 여 주 는 보 기 를 실현 하 는 것 이 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기