วันศุกร์ที่ 31 พฤษภาคม พ.ศ. 2556

Laravel 4 ตอนที่ 2 พื้นฐานการทำ Routing

พื้นฐานการกำหนดเส้นทาง Routing

การกำหนดเส้นทางเมื่อมีการเรียกผ่าน URIs ว่าถ้ามีการผ่านค่าเข้ามาแล้ว จะกระทำอย่างไรกับค่าที่เข้ามานั้น เรากำหนดและแก้ไขใน app/routes.php

ตัวอย่างการผ่านค่า URIs ที่จะแสดงต่อไปนี้กำหนดให้มี URL หลัก http://laravel.dev/  ทำการเปิดใช้งาน rewite_module เพื่อไม่ให้แสดง index.php เช่น
http://laravel.dev/index.php/hello เป็น http://laravel.dev/hello

กำหนดเส้นทางเมื่อเรียกผ่าน GET

Route::get('/',function()
{
    return View::make('home.index');
});

เมื่อเรียกผ่าน http://laravel.dev/ สร้าง View จากไฟล์ที่อยู่ใน app/views/home/index.php

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

เมื่อเรียกผ่าน http://laravel.dev/hello สร้าง View จากไฟล์ที่อยู่ใน app/views/hello.php

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

เมื่อเรียกผ่าน http://laravel.dev/hello/world แสดงข้อความ Hello World



กำหนดเส้นทางเมื่อเรียกผ่าน POST

Route::post('hello/world', function()
{
    return 'Hello World';
});

กำหนดเส้นทางเมื่อเรียกผ่าน รูปแบบใดๆ

Route::any('any', function()
{
    return ' Any HTTP Verb';
});


กำหนดเส้นทาง โดยบังคับเรียกข้อมูลผ่าน HTTPS

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


การรับพารามิเตอร์มาใช้

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

เช่น http://laravel.dev/user/1234 แสดงผลเป็น User 1234

Route::get('user/{name?}', function($name = null)
{
    if($name){
        return "Username is ".$name;
    }else{
        return "No username";
    }
   
});

กำหนดค่า default ให้กับพารามิเตอร์ในกรณีที่ไม่ผ่านค่าเข้ามา จากตัวอย่าง
http://laravel.dev/user/ แสดงผลเป็น No username
http://laravel.dev/user/anyone แสดงผลเป็น Username is anyone

การใช้ Regular Expression เพื่อกำหนดรูปแบบของพารามิเตอร์ที่จะรับ

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

ชื่อที่ผ่านเข้ามาต้องเป็นตัวอักษร A-Z และ a-z เท่านั้น

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

ไอดีที่ผ่านเข้ามาต้องเป็นตัวเลข 0-9 เท่านั้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น