카테고리 없음
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 템플릿 구조로 만들어보기