Laravel : File Structure
ครั้งแรกกับเรื่อง Folder Structure ว่าเราจะจัดการเรื่อง File หรือ Folder ยังไง ก็มี Guideline มาให้ จริงๆอ่านจากเว็บ Tutorial นี้ก็เข้าใจง่ายดี
Routing
Route::get('/', function() { return View::make('pages.home'); }); Route::get('about', function() { return View::make('pages.about'); }); Route::get('projects', function() { return View::make('pages.projects'); }); Route::get('contact', function() { return View::make('pages.contact'); });
File Structure
โครงสร้างของ File และ Folder
- app -- views --- layouts ------- default.blade.php ------- sidebar.blade.php --- pages ------- home.blade.php ------- about.blade.php ------- projects.blade.php ------- contact.blade.php --- includes ------- head.blade.php ------- header.blade.php ------- footer.blade.php ------- sidebar.blade.php
Include
head.blade.php
<meta charset="utf-8"> <meta name="description" content=""> <title>Super Cool Layouts</title> <!-- load bootstrap from a cdn --> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/twitter-bootstrap/3.0.3/css/bootstrap-combined.min.css">
header.blade.php
<div class="navbar"> <div class="navbar-inner"> <a id="logo" href="/">Single Malt</a> <ul class="nav"> <li><a href="/">Home</a></li> <li><a href="/about">About</a></li> <li><a href="/projects">Projects</a></li> <li><a href="/contact">Contact</a></li> </ul> </div> </div>
footer.blade.php
<div id="copyright text-right">© Copyright 2013</div>
Default Layouts
ใช้แต่ @include @yield เชื่อมกับโครงสร้าง File อื่นๆ ถือว่าง่ายดี
<!doctype html> <html> <head> @include('includes.head') </head> <body> <div class="container"> <header class="row"> @include('includes.header') </header> <div id="main" class="row"> @yield('content') </div> <footer class="row"> @include('includes.footer') </footer> </div> </body> </html>
ถ้ามี Page contact ที่ใช้ Layout เดียวกัน ก็ให้เพิ่ม @yield('contact') ไปก็ได้
<div id="main" class="row"> @yield('content') @yield('contact') </div>
Pages
ที่เหลือก็แค่แทรก File เป็น Page เข้าไป
pages/about.blade.php
@extends('layouts.sidebar') @section('content') i am the about page @stop
pages/projects.blade.php
@extends('layouts.sidebar') @section('content') i am the projects page @stop
คร่าวๆถือว่าได้ Concept เรื่อง Layout ของ Laravel ที่เหลือให้ลองศึกษาจากเว็บของ Laravel
Add new comment