พื้นฐานการกำหนดเส้นทาง 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 เท่านั้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น