Laravel หัดใช้ Route และ View เบื้องต้น

การจะใช้ framework เพื่อใช้ในการพัฒนาโปรแกรมนั้น จะต้องทำความเข้าใจหลักการของ framework ที่จะใช้ก่อน ซึ่งแต่ละโปรแกรมจะมีรายละเอียดแตกต่างกันไป ทั้งรูปแบบการเขียนโปรแกรม โครงสร้างไฟล์หรือไดเร็กทอรีต่างๆ วิธีการการใช้ Class, Method ที่เกี่ยวข้อง

ครั้นจะทำความเข้าใจทั้งหมดแล้วค่อยลงมือใช้ ตามประสบการณ์ที่ได้ลองแล้ว อ่านๆ ไปบางครั้งนึกภาพไม่ออกว่าเป็นอย่างไร โดยส่วนตัวเลยคิดว่าลองทำตามเป็นขั้นๆ ไป น่าจะดี

ในที่นี้เรียบเรียงมาจากเว็บไซต์ laravel.com และเว็บอื่นๆ ที่เกี่ยวข้อง เรียงตามลำดับที่คิดว่าผู้อ่านที่ไม่เคยใช้มาก่อน (รวมทั้งผู้เขียนเองด้วย) ลองทำตามดูทีละขั้นน่าจะพอเข้าใจ laravel ได้มากขึ้น

แม้แรกๆ จะดูยุ่งยาก แต่พอลองทำไปเรื่อยๆ ดูเป็นระเบียบดี ถ้าโปรแกรมมีขนาดใหญ่ขึ้น laravel น่าจะช่วยในการดูแล ปรับปรุง โปรแกรมได้ดีมากขึ้น

หลังจาก ติดตั้งและคอนฟิก Laravel เบื้องต้น เรียบร้อยแล้ว โดยได้สร้างแอพที่ชื่อ blog ขึ้นมา เก็บไว้ใน /var/www/html/blog และคอนฟิกให้ DocumentRoot ของเว็บเซิร์ฟเวอร์ ชี้มาที่ /var/www/html/blog/public

คอนฟิก Route กำหนดเส้นทาง

เริ่มต้นกับการคอนฟิก Route ซึ่งเป็นการคอนฟิกว่าเมื่อเข้าหน้าเว็บด้วยการระบุ HTTP Method และ URL path ให้ไปรันโปรแกรมส่วนไหนขึ้นมา

เปิดไฟล์ apps/routes.php เพื่อเพิ่ม Route

[alice@cent6-php blog]$ vi app/routes.php
...
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

Route::get('/', function()
{
    return View::make('hello');
});


Route::get('users', function()
{
    return 'Users!';
}); 

คำอธิบาย บรรทัดที่เพิ่มขึ้นเป็นการสร้าง Route สำหรับการเข้าหน้าเว็บโดยใช้ get (HTTP Method GET) ระบุ path “users” ให้ return หรือแสดงข้อความ “Users!” ออกมา

ทดลองเปิดบน browser

l-21

ส่งค่า Parameter ใน Route

ถ้าเราต้องการส่งค่า parameter ก็เพียงแต่กำหนดรูปแบบ path ที่จะใช้ พร้อมกับรูปแบบการรับค่าไว้ในเครื่องหมาย {}

เพิ่ม route ในไฟล์ app/routes.php

[alice@cent6-php blog]$ vi app/routes.php
...
Route::get('user/{id}', function($id)
{
    return 'User ' . $id;
});

ทดลองเปิดบน browser

l-23

คำอธิบาย เมื่อมีการเข้าหน้าเว็บตามพาธที่ระบุเช่น user/12 ตัวเลข 12 จะตรงตามรูปแบบ (match) กับ {id} และส่งค่าเข้าไปในฟังก์ชั่นด้วยตัวแปร $id ไว้ใช้ในการประมวลผลต่อไปได้

การใช้ View เพื่อแสดงผล

ตามหลักการของ Laravel หรือ MVC (Model–view–controller) ทั่วไป ส่วนที่ใช้ในการแสดงผลจะถูกจัดในส่วน View

ใน Laravel เราจะสร้างไฟล์ View เพื่อใช้ในการแสดงผลข้อมูลไว้ในไดเร็กทอรี apps/views/

ในไดเร็กทอรีนี้ เราจะสร้างเป็นไฟล์ .php ธรรมดาก็ได้ แต่ใน Laravel จะมี template ให้เรียกใช้ ที่ชื่อว่า Blade ซึ่งช่วยให้เขียนไฟล์เพื่อแสดงผลได้ง่ายขึ้น วิธีการใช้ Blade ก็เพียงแค่กำหนดชื่อไฟล์ลงท้ายด้วย .blade.php เท่านั้นเอง

ขอยกตามตัวอย่างในเว็บไซต์ laravel.com

สร้างไฟล์ layout.blade.php

[alice@cent6-php blog]$ vi app/views/layout.blade.php
<html>
 <body>
 <h1>Laravel Quickstart</h1>
 @yield('content')
 </body>
</html>

สร้างอีกไฟล์ users.blade.php

[alice@cent6-php blog]$ vi app/views/users.blade.php
@extends('layout')

@section('content')
    Users!
@stop

แก้ไขไฟล์ routes.php เพื่อเปลี่ยนให้ไปเรียกใช้ไฟล์ในส่วนของ View ในการแสดงผล

[alice@cent6-php blog]$ vi app/routes.php 
...

Route::get('users', function()
{
    return View::make('users');
});

คำอธิบาย แทนที่จะ return ข้อความโดยตรง ในที่นี้จะใช้ View::make() เพื่อไปดึงไฟล์ ที่อยู่ใน apps/views/ มาแสดงผล โดย laravel จะค้นหาไฟล์ที่ลงท้ายด้วย .blade.php หรือ php เอง

ทดลองเปิดบน browser

l-22

จะเห็นว่าการจะใช้ Laravel ได้ ต้องทำตามรูปแบบที่กำหนดไว้ ไม่ว่าจะเป็นชื่อไฟล์ ไดเร็กทอรี การเรียก class การใช้ method หรือการระบุตัวแปรต่างๆ เพื่อรับค่าและแสดงผลลัพธ์ออกมาผ่านทางหน้าเว็บ

ตอนต่อไป จะมาดูวิธีการใช้ Laravel เพื่อเชื่อมกับฐานข้อมูล

ข้อมูอ้างอิง

Leave a Reply

Your email address will not be published.