version 4.1.0

บทที่ 4 Route คืออะไร ใช้งานอย่างไร

  อังคารที่ 27 มกราคม พ.ศ. 2558 เวลา 08:57:20 น.      7,738 ครั้ง


บทที่ 4 Route คืออะไร ใช้งานอย่างไร

แนะนำ

ทุกครั้งที่เราต้องการเข้าใช้งานเว็บไซต์ เราจำเป็นต้องกรองข้อมูล URL เข้าไปใช่หรือไม่ สิ่งที่เรียกว่า Routing มันมีความสามารถในการ "กรองหรือคัดแยก" URL ตามรูปแบบ Method GET หรือ POST เพื่อที่จะจำกัดการเข้าถึงหน้าเว็บไซต์ดังกล่าวได้ ตัวอย่าง เช่น URL http://localhost/laravel_tutorial/public/ (GET) ซึ่ง Routing จะเข้าไปตรวจสอบว่า "/" จะให้เรียกใช้งาน Controller และ Action ใดได้บ้าง ตามความต้องการของเรา ซึ่งไฟล์ที่เราจะต้องเข้าไปแก้ไขนั่นก็คือไฟล์ที่มีชื่อว่า "routes.php" อยู่ในไดเรคอทอรี่ [skeleton]\app\routes.php

บทนี้มีอะไรบ้าง

  1. ตอนที่ 1 การใช้งาน Routing พื้นฐาน / เบื้องต้น
  2. ตอนที่ 2 การใช้งาน Routing + Parameters พื้นฐาน / เบื้องต้น

ตัวอย่างคำสั่ง

 Route::get('/', function(){
    return 'Hello World';
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 1 | รูปภาพตัวอย่าง

ตัวอย่างที่ 2 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/foo/bar (POST) ให้แสดงข้อความว่า "Hello World" ออกมา

ตัวอย่างคำสั่ง

 Route::post('foo/bar', function(){
    return 'Hello World';
});

Method POST คือ ค่าที่ถูกส่งมาจาก FORM รับข้อมูล สามารถดูได้จาก คำสั่งการสร้าง ฟอร์ม เช่น <form mehtod="POST">

ตัวอย่างที่ 3 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/ (GET,POST) ให้แสดงข้อความว่า "Hello World" ออกมา

ตัวอย่างคำสั่ง

 Route::match(array('GET', 'POST'), '/', function(){
    return 'Hello World';
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 2 | รูปภาพตัวอย่าง

ตัวอย่างที่ 4 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/foo (ทั้งหมด) ให้แสดงข้อความว่า "Hello World" ออกมา

ตัวอย่างคำสั่ง

 Route::any('foo', function(){
    return 'Hello World';
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 3 | รูปภาพตัวอย่าง

ตัวอย่างที่ 5 กำหนดให้เมื่อ URL เป็น https://localhost/laravel_tutorial/public/foo (GET, HTTPs) ให้แสดงข้อความว่า "Must be over HTTPS" ออกมา

ตัวอย่างคำสั่ง

 Route::get('foo', array('https', function(){
    return 'Must be over HTTPS';
}));

ตัวอย่างที่ 6 คำสั่งในการสร้าง Create URL

ตัวอย่างคำสั่ง

 URL::to('foo');
// out : http://localhost/laravel_tutorial/public/foo


ตัวอย่างคำสั่ง

 Route::get('user/{id}', function($id){
    return 'User ' . $id;
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 4 | รูปภาพตัวอย่าง

ตัวอย่างที่ 2 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/user/eakkabin (GET) ให้แสดงข้อความว่า "eakkabin" ออกมา

ตัวอย่างคำสั่ง

 Route::get('user/{name?}', function($name = null){
    return 'User ' . $name;
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 5 | รูปภาพตัวอย่าง

ตัวอย่างที่ 3 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/user (GET) ให้แสดงข้อความว่า "John" ออกมา

ตัวอย่างคำสั่ง

 Route::get('user/{name?}', function($name = 'John'){
    return $name;
});

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 6 | รูปภาพตัวอย่าง

ตัวอย่างที่ 4 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/user/eakakbin (GET และ ต้องมีค่าเป็น ตัวอักษร A-Z, a-z เท่านั้น) ให้แสดงข้อความว่า "eakakbin" ออกมา

ตัวอย่างคำสั่ง

 Route::get('user/{name}', function($name){
    return $name;
})->where('name', '[A-Za-z]+');

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 7 | รูปภาพตัวอย่าง

ตัวอย่างที่ 5 กำหนดให้เมื่อ URL เป็น http://localhost/laravel_tutorial/public/user/191 (GET และ ต้องมีค่าเป็น ตัวเลข 0-9 เท่านั้น) ให้แสดงข้อความว่า "191" ออกมา

ตัวอย่างคำสั่ง

 Route::get('user/{id}', function($id){
    return $id;
})->where('id', '[0-9]+');

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 8 | รูปภาพตัวอย่าง

กรณีการตรวจสอบไม่พบ URL ที่ไม่ตรงกับเงื่อนไขใน Route ระบบจะแสดงผลดังนี้ออกมา

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 9 | รูปภาพตัวอย่าง




นักแปล / นักเขียน / เรียบเรียง

author

เอกบิณ ใจแก้วมา (แม็ก)

"โปรแกรมเมอร์ตัวเล็ก ๆ" สะสมประสบการณ์ด้านการพัฒนาซอฟแวร์มามากกว่า 11 ปี
# ติดตามผลงานได้ที่ | พบกับเราที่ Google+ | Facebook






Comment