View blade ใน Laravel 5

บทเรียนนี้ เราจะกล่าวถึงการใช้งาน View blade ใน Laravel 5 กันครับ อธิบายคร่าว ๆ Blade ก็คือ การเรียกใช้งาน Html template ที่เราได้สร้างไว้นั้นเอง โดยอาจทำการประกอบร่างกันจากหลาย ๆ ไฟล์ ยกตัวอย่างเช่น เราแบ่ง เพจ ของเรา ออกเป็น 3 ส่วนคือ
– Header
– Body หรือ Content
– Footer
ตัวอย่างโครงสร้าง HTML
<! DOCTYPE HTML> <html> <head> <title>Title page</title> {{ใช้ประการศคำสั่งจำพวก Meta ต่าง ๆ และ Title page}} </head> <body> {{ เป็นส่วนที่ใช้แสดงผลหน้าเพจ เช่น Banner , Content และ Footer}} </body> </html>
เอาล่ะครับ คราวนี้มาเข้าเรื่องกันดีกว่า ให้ท่านทำการสร้างไฟล์ tmp.blade.php และ test.blade.php ไว้ที่ resources/views
tmp.blade.php ใช้สำหรับ เก็บค่า Template หลัก
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>MAIN TEMPLATE</h1> @yield('content') </body> </html>
test.blade.php ใช้สำหรับแสดงในส่วนของ content ที่ต้องการเพิ่มเข้ามา
@extends('tmp') @section('content') <p>Display Test Page in tmp blade By <b>สายหมอก</b></p> @stop
คำสั่ง @extends() จะใช้สำหรับดึงไฟล์ tmp มาใช้งานเป็น Template ถ้าสมติว่า ท่านใช้ชื่ออื่น เช่น template.blade.php ก็เรียกใช้งาน เป็น @extends(‘template’) ไม่ต้องใส่ .blade ต่อท้าย
ส่วน @section() @stop คือการแทรก Content ลงในหน้า tmp.blade.php ในส่วนที่ประกาศ @yield() เอาไว้
ที่นี้เราจะมาว่าถึงการเรียกใช้งาน ผ่าน Route กัน ให้ทำการเปิดไฟล์ app/Http/routes.php ขึ้นมา
จากนั้นเราสามารถเรียกใช้งานได้ หลายรูปแบบ ที่นี้ผู้สอนจะยกตัวอย่าง 3 รูปแบบในการเรียกเพื่อใช้งาน
ตัวอย่างที่ 1 เรียกจาก Route โดยตรงไม่ต้องผ่าน controller
Route::get('test-route',function(){ return View::make('test'); });
เรียกผ่าน url : localhost/laravel-5/public/test-route
ตัวอย่างที่ 2 เรียกใช้งาน โดย Route เรียกผ่าน Method controller อีกที
Route::get('test-method','TestController@getIndex');
ในที่ต้องทำการสร้าง ไฟล์ TestController.php ไว้ที่ app/Http/Controllers จากนั้นเปิดไฟล์ขึ้นมา
<?php namespace App\Http\Controllers; class TestController extends Controller { public function getIndex(){ return view('test'); } }
เรียกผ่าน url : localhost/laravel-5/public/test-method
ตัวอย่างที่ 3 เรียกโดยใช้ Route controller
Route::controller('test-controller','TestController');
เรียกผ่าน url : localhost/laravel-5/public/test-controller
ตัวอย่างนี้ จะวิ่งไปทำงานกับ Controller ที่ประได้สร้างไว้ก่อนหน้านี้
ทั้งนี้ขึ้นอยู่กับผู้เรียนว่า ถนัดการใช้งานแบบไหน ทางผมเองชอบแบบ Route::controller เนื่องด้วย Route ดูเป็นระเบียบและจัดการได้ง่ายดี
Comments
Comments are currently closed.
อธิบายดีครับ
ทำตามแล้วขึ้นแบบนี้ครับ
url จะเป็น http://localhost/laravelth/public/test-route
Not Found
The requested URL /laravelth/public/test-route was not found on this server.
Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80
ติดตรงไหนครับ 🙁
การประกาศ Route get ต้องไม่มีเครื่องหมายใด ๆ ครับ ลองลบ – ออกครับ