일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Machine Learning
- mariadb
- python
- SQL
- php
- CentOS
- nginx
- Node
- Go
- rabbitmq
- Redux
- docker
- javascript
- 기초 수학
- Redis
- Backbone.js
- NCP
- webpack
- nodejs
- phpredis
- React
- fastapi
- For
- AWS
- 블레이드 템플릿
- laravel
- deep learning
- Switch
- Babel
- linux
- Today
- Total
개발일기
블레이드 템플릿 2탄 - @for, @while, @foreach 반복문 본문
지난 포스팅에 이어 블레이드 템플릿의 반복문에 대해 알아보겠다.
1. @for
템플릿엔진이 아닌 프로그래밍언어를 통해 for문을 사용할 때는
이런 식으로, 초기 변수값과 증감값, 반복범위를 지정해준 후, 한 번 실행될 때 마다 실행될 코드를 작성하는 방식으로 반복문을 작성한다.
블레이드 템플릿에서도 for 반복문을 사용하는 방식은 이와 비슷하다.
@for($i=0; $i < 10; $i++)
<div>
<p>good</p>
</div>
@endfor
아마 이미 눈치를 챘을 것이다. 명령어 앞에 @만 붙이면 된다는 것을 말이다. 하지만 중요한 것은 @endfor도 붙여줘야 한다는 것이다.
다른 언어의 for문과 다른점으로는 {} 중괄호가 붙어있지 않다는 것이다. 중괄호는 여러줄을 반복할 때, 반복문의 시작과 끝을 명시해주는 것이지만 블레이드 템플릿에서는 중괄호를 사용하지 않는다. 그렇기에 @endfor를 통해 반복문의 끝을 알려준다. 실수로 @endfor를 명시해주지 않을 경우에는 <div> <p> good </p> </div> 아래에 있는 다른 HTML태그도 반복되어 실행되는 레이아웃붕괴를 목격하게 될 것 이다.
2. @while
while문도 기존 while문과 비슷하다.
i의 초기값은 0, 반복범위는 i가 10일 때까지, i가 1씩 증가하면서 반복되는 구문을 만들어 보았다. 한 번 반복할 때마다 i의 값을 나타내는 문단이 생성된다. @for문과 마찬가지로 @while문은 @endwhile로 반복의 마지막부분을 지정한다.
3. @foreach
다음은 블레이드 템플릿의 @foreach문이다.
@foreach문은 주로 배열이나 객체를 풀어서 나열할 때 사용한다. 먼저 $posts는 배열이나 객체 타입의 변수를 뜻한다. $k는 인덱스값, v는 해당 인덱스의 값을 나타낸다.
예를 들어 $posts가 [ "서울", "경기", "인천", "강원", "충북" ] 이라는 배열로 구성되어있다면 $k는 0, 1, 2, 3, 4로 반복될 때 마다 인덱스값이 증가할 것이다 $v는 "서울", "경기", "인천", "강원", "충북"이라는 배열값이 반복될 때 마다 값이 바뀌어서 출력되는 것을 확인할 수 있다.
4. 정리
블레이드 템플릿에서 자주 쓰이는 반복문 구문인 @for, @while, @foreach를 알아보았다. 물론 템플릿이 엔진뿐만 아니라 다른 프로그래밍언어에서도 이 세가지 타입의 반복문은 매우 자주 사용되며 선언하는 방식도 거의 100%일치한다. 하지만 라라벨을 기반으로한 블레이드 템플릿엔진에서는 명렁어 앞에 @를 붙이고 반복문의 마지막 시점에는 @end~를 써넣으면 되는 간단한 규칙이 추가되어있다. 이러한 약간의 변동사항만 숙지를 하면 화면에서 각종 내용들을 반복하여 출력할 때, 오류없이 화면을 구성할 수 있을 것이다.
다음 번 포스팅에는 블레이드 템플릿의 조건문과 관련된 내용을 포스팅할 예정이다. 조건을 지정하여 조건에 따라 다른 내용을 출력하고자 하는 경우가 종종 존재하기에 조건문에 대해 다뤄보고자 한다.
https://laravel.kr/docs/8.x/blade#loops
(반복문 관련 공식문서이다.)
'프로그래밍 언어 > PHP - Laravel' 카테고리의 다른 글
CentOS에 PHP8 설치 (Epel, Remi) (0) | 2021.11.30 |
---|---|
Laravel Framework - ORM / Query Builder (0) | 2021.07.19 |
블레이드 템플릿 3탄 - @if, @switch 조건문 (0) | 2021.07.12 |
블레이드 템플릿 1탄 - @section, @yield (0) | 2021.06.30 |
Laravel Framework의 구조 (2) | 2021.06.22 |