#10 Blade subviews
이전 포스트에서는 @yield
와 @extends
그리고 @section
을 통한 레이아웃 구성법에 대해 알아보았다.
이번에는 @include를 통한 layout 구성에 대해 살펴보자.
include는 웹개발을 하는사람이라면 많이 접한 단어일 것이다. yield가 extends를 통해서 master layout을 불러오고 그것을 채워넣는 것이라면, include는 실제로 그 파일에서 다른 레이아웃을 불러오는 것이다.
사실 나도 아직 개념이 확실하지가 않아서 일단 예제로 보여주겠다.
우선 이것이 layouts/master.blade.php
파일이다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>@yield('title')</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/jumbotron-narrow.css" rel="stylesheet">
</head>
<body>
<div class="container">
@include('layouts.menu')
@yield('body')
@include('layouts.footer')
</div> <!-- /container -->
</body>
</html>
이것은 각각 layouts/menu.blade.php
와 layouts/footer.blade.php
이다.
//layouts/menu.blade.php
<div class="header clearfix">
<nav>
<ul class="nav nav-pills pull-right">
<li role="presentation" class="active"><a href="#">Home</a></li>
<li role="presentation"><a href="#">About</a></li>
<li role="presentation"><a href="#">Contact</a></li>
</ul>
</nav>
<h3 class="text-muted">Project name</h3>
</div>
//layouts/footer.blade.php
<footer class="footer">
<p>© 2016 Company, Inc.</p>
</footer>
각각의 다른 Blade layout파일이지만 master blade에서 @include
라는 것을 사용하여 하나의 파일로 만들 수 있다.