카테고리 없음

Laravel 03. Blade

테디아저씨 2026. 4. 13. 23:10

Blade는 Laravel의 템플릿 엔진으로, PHP를 더 쉽게 쓰게 해준다.

기본위치

resources/views

 

파일 확장자

.blade.php

 

변수의 출력

<h2>{{ $name }}</h2>

Lagacy PHP
<?php echo $name; ?>

 

조건문

@if($memner_kind == "T")
    <p>선생님 입니다.</p>
@else
    <p>선생님이 아닙니다.</p>
@endif

 

@if($memner_kind == "T")
    <p>선생님 입니다.</p>
@elseif($memner_kind == "S")
    <p>학생 입니다.</p>
@else
    <p>Guest 입니다.</p>
@endif

 

반복문

## for 기본 반복문
@for($i = 0; $i < 5; $i++)
    <p>{{ $i }}</p>
@endfor


## while
@php $i = 0; @endphp
@while($i < 5)
    <p>{{ $i }}</p>
    @php $i++; @endphp
@endwhile


# for, while 은 변수를 잘못쓰면 무한루프 위험이 있습니다.


## 실무에서 더 많이 사용됨
@foreach($posts as $post)
    <p>{{ $post->title }}</p>
@endforeach

## foreach 에서는 값이 있을때만 출력이 있기 때문에
## 사용자가 무슨 문제가 있는지 확인이 어렵다.

## 실제로는 아래 처럼 많이 사용한다.
@if(count($posts) > 0)
    @foreach($posts as $post)
        <p>{{ $post->title }}</p>
    @endforeach
@else
    <p>게시글이 없습니다</p>
@endif


## 실무에서 많이 쓰는 형태...
@forelse($posts as $post)
    <p>{{ $post->title }}</p>
@empty
    <p>게시글이 없습니다</p>
@endforelse

## 데이터 없으면 @empty 실행

 

 

 

 

기타

# 값이 존재할때 ( 변수가 존재하고, null 이 아닐때 )
@isset($data)
    <p>데이터가 있습니다</p>
@endisset


@isset($user)
    <p>{{ $user->name }}</p>
@endisset


# Lagacy PHP
if (isset($user)) { 

}

 

 

레이아웃 구성 (layout, section)

 

app.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>My App</title>
</head>
<body>

<header>헤더</header>

@yield('content')

<footer>푸터</footer>

</body>
</html>

 

layouts/app.blade.php

@extends('layouts.app')

@section('content')
    <h1>게시글 목록</h1>
@endsection

 

include 

 

* layout 에서 사용

<!DOCTYPE html>
<html>
<head>
    <title>My App</title>
</head>
<body>

@include('partials.header')

@yield('content')

@include('partials.footer')

</body>
</html>

 

* 자식 템플릿에서 사용

@section('content')

@include('partials.sidebar')

<h1>게시판</h1>

@endsection

 

@extends → 부모 템플릿 상속
@section → 내용 정의
@yield → 내용 출력

 

 

 

resources/views/
 ├── partials/
 │     ├── header.blade.php
 │     └── footer.blade.php
 ├── layouts/
 │     └── app.blade.php
 └── posts/
       └── index.blade.php

 

 

 

실습과 과제

  • 부트스트랩 템플릿을 blade 템플릿 구조로 만들어보기