소개
라우트나 컨트롤러에서 HTML 문서 전체를 문자열로 반환하는 것은 현실적이지 않습니다. 뷰를 사용하면 모든 HTML을 독립된 파일에 작성할 수 있습니다. 뷰는 컨트롤러·애플리케이션 로직을 프리젠테이션 로직으로부터 분리하며,resources/views 디렉터리에 저장됩니다.
Laravel에서는 일반적으로 Blade 템플릿 언어를 사용해 뷰를 작성합니다.
resources/views/greeting.blade.php에 저장되어 있으며, 전역 view 헬퍼를 사용해 반환할 수 있습니다.
뷰 생성
뷰를 생성하려면resources/views 디렉터리에 .blade.php 확장자의 파일을 놓거나 Artisan 명령을 사용합니다.
.blade.php 확장자는 프레임워크에 해당 파일이 Blade 템플릿을 포함하고 있음을 알립니다.
뷰 반환 방법
뷰를 생성했다면 라우트나 컨트롤러에서 전역view 헬퍼를 사용해 반환할 수 있습니다.
View 파사드를 사용해서도 반환할 수 있습니다.
view 헬퍼의 첫 번째 인수는 resources/views 디렉터리 안의 뷰 파일명에 대응합니다.
두 번째 인수는 뷰에서 사용할 수 있는 데이터 배열입니다.
중첩된 뷰 디렉터리
뷰는resources/views의 하위 디렉터리로 중첩할 수 있습니다.
중첩된 뷰를 참조하려면 “점” 표기법을 사용합니다.
예를 들어 resources/views/admin/profile.blade.php에 저장한 뷰는 다음과 같이 반환할 수 있습니다.
처음 존재하는 뷰 반환하기
View 파사드의 first 메서드를 사용하면 뷰 배열 중 처음 존재하는 뷰를 반환할 수 있습니다.
뷰 존재 확인
뷰가 존재하는지 확인하려면View 파사드의 exists 메서드를 사용합니다.
뷰에 데이터 전달하기
앞서 예제에서 봤듯이, 데이터 배열을 뷰에 전달하여 뷰 안에서 해당 데이터를 사용할 수 있습니다.with 메서드를 사용하여 개별적으로 데이터를 추가할 수도 있습니다.
with 메서드는 뷰 객체의 인스턴스를 반환하므로 메서드 체이닝이 가능합니다.
모든 뷰에서 데이터 공유하기
모든 뷰에서 데이터를 공유하고 싶다면View 파사드의 share 메서드를 사용합니다.
일반적으로 서비스 프로바이더의 boot 메서드 안에 작성합니다.
뷰 최적화
기본적으로 Blade 템플릿의 뷰는 온디맨드로 컴파일됩니다. 요청 시점에 뷰 컴파일 처리가 실행되므로 약간의 성능 영향을 줄 수 있습니다.view:cache Artisan 명령을 사용하면 애플리케이션에서 사용되는 모든 뷰를 미리 컴파일할 수 있습니다.
배포 프로세스의 일부로 실행하는 것을 권장합니다.
다음 단계
Blade 템플릿
Blade 구문을 사용해 동적인 뷰를 구축하는 방법을 배웁니다.