개발 기록
Laravel 이해하고 쓰자(블레이드 템플릿) 본문
이 글은 뷰의 블레이드 템플릿 개념을 이해하고 사용하기 위해 작성됐습니다.
뷰는 resources/views에서 파일을 관리한다.
라라벨에서는 blade template을 사용하며
index.blade.php와 같이 blade확장자를 붙여 사용 가능합니다.
// index.blade.php
<html>
<head></head>
<body></body>
</html>
또한 ,
{{}} 안에 php변수 사용하면 출력이 가능하다.
// index.blade.php
<html>
<head></head>
<body>
{{ $data="테스트" }}
{{ $data }}
</body>
</html>
레이아웃(layouts)
@extends : 특정 파일의 레이아웃을 상속받는다.
@section : 상속받은 파일의 @yield 부분에 입력될 내용을 지정한다.
ex)@yield('title')에 들어갈 내용은 @section('title') 안에 작성하고 @stop으로 닫아주면 된다.
@yield : 상속한다.
위와 같은 명령을 이용하여 레이아웃을 정의하거나 확장한다.
@extends('layouts.master') // layouts/master.blade.php 파일의 레이아웃을 상속받는다.
@section('title') // @yield('title')에는 '테스트페이지' 라는 값이 입력된다.
테스트페이지
@stop
@section('header_css_js') // @yield('header_css_js')에 페이지에 사용될 js와 css를 임폴트 한다.
<script src="//code.jquery.com/jquery-latest.min.js"></script>
<link href="/css/base.css" rel="stylesheet" type="text/css" />
@stop
@section('header')
@include('layouts.header.header') // 헤더에는 layouts/header/header.blade.php의 내용을 가져온다.
@stop
@section('container')
@include('assets.main_bn') // assets/main_bn.blade.php의 내용을 가져온다.
<div class="list_wrap">
<div class="product_listwrap">
<div class="grid">
@include('products.feed') // products/feed.blade.php의 내용을 가져온다.
</div>
</div>
</div>
@stop
@section('footer')
@include('assets.footer') // 푸터에는 assets/footer.blade.php의 내용을 가져온다.
@stop
@section('import_js') // 페이지에 사용되는 js를 임폴트 한다.
<script src="/js/common_menu.js"></script>
@stop
헤더와 푸터처럼 모든페이지에 포함되는 영역이나 반복적으로 들어가는 부분은 별도의 블레이드 파일을 생성하여 @include 명령을 통해 가져올 수 있다. 이런 형태의 레이아웃 구성은 수정이 겁나 쉽다.
반복문
for
@for($i=1; $i<=10; $i++)
{{ $i }}
@endfor
foreach
{{ $data = [1,2,3,4,5] }}
@foreach($data as $index => $value)
{{ $index}}:{{ $value }}
@endforeach
switch
@switch($number)
@case(1)
일
@break
@case(2)
이
@break
@default
다른숫자
@endswitch
조건문
@if($data == 1)
하나
@elseif($data == 2)
둘
@else
다른 숫자
@endif
CSRF(Cross-site Request Forgery) - 크로스사이트 요청 변조
form를 이용하여 post를 할 경우엔 CSRF를 붙여주시는것이 보안상 좋으며 별도의 설정없이 사용하면 에러가 발생합니다.
<form method="POST" action="/post">
@csrf
</form>
'웹 자료 > Laravel' 카테고리의 다른 글
Eloquent ORM (0) | 2020.05.21 |
---|---|
Laravel 이해하고 쓰자(라우팅/미들웨어) (0) | 2020.05.20 |
Laravel 이해하고 쓰자(서비스 프로바이더/ 파사드) (0) | 2020.05.20 |
Laravel 이해하고 쓰자(시작/서비스 컨테이너) (0) | 2020.05.20 |