6강 - 블레이드 101

블레이드는 라라벨의 템플릿 엔진이다. 뷰 안에 포함된 블레이드 문법들은 블레이드 엔진에 의해 php 코드로 컴파일 된다.

{{ }} - String interpolation

php echo 코맨드와 같은 역할을 해 준다.

<!-- <?= $greeting; ?> -->
{{ $greeting }}

{{-- --}} - Comment

HTML 주석으로 컴파일 된다. 그런데 브라우저에서 소스보기로 보면 엄연히 다르다.

{{-- count(range(1, 10)) --}} <!-- count() 자체가 실행안됨. 즉, 아무것도 출력되지 않음 -->
<!-- {{  count(range(1, 10)) }} --> <!-- 주석 안에 10이 표시됨 -->

@foreach

resources/views/index.blade.php 에서 @foreach 블레이드 문법을 사용해 보자.

<ul>
  @foreach($items as $item)
    <li>{{ $item }}</li>
  @endforeach
</ul>

당연히 $items 변수를 뷰로 넘겨줘야 한다. 어디서? 5강에서 배운 내용이다. app/Http/routes.php 에서...

Route::get('/', function () {
    $items = [
        'Apple',
        'Banana'
    ];

    return view('index', compact('items'));
});

참고 @for도 사용할 수 있다.

@if

resources/views/index.blade.php 에서 @if 블레이드 문법을 사용해 보자.

@if($itemCount = count($items))
  <p>There are {{ $itemCount }} items !</p>
@else
  <p>There is no item !</p>
@endif

참고 @elseif 당연히 된다. @unless (== if(!))도 사용할 수 있다.

@forelse

resources/views/index.blade.php 에서 @forelse 블레이드 문법을 사용해 보자. @forelse@if@foreach의 결합이다. 뷰로 넘어온 변수에 값이 있고 ArrayAccess를 할 수 있으면 , @forelse를 타고 그렇지 않으면 @empty를 탄다. 자주 이용하게 되니 잘 기억해 두자.

@forelse($items as $item)
  <p>The item is {{ $item }}</p>
@empty
  <p>There is no item !</p>
@endforelse

@forelse 위에서 <?php $items = []; ?>로 변수를 오버라이드하고 다시 실험해 보자.




comments powered by Disqus
목록 토글
keyboard_arrow_up