ใน Laravel นั้นจะเก็บ routes ไว้ที่ไฟล์ app/routes.php เริ่มต้นครั้งแรกจะมีแค่ route ไปยังหน้าแรก ( / ) route ที่ง่ายที่สุดใน Laravel จะมีแค่การระบุ URL และ Closure callback เท่านั้น[imooh_google_ads]
การ routing แบบ GET
Route::get('/', function() { return 'Hello World'; });
การ routing แบบ POST
Route::post('foo/bar', function() { return 'Hello World'; });
การ routing ที่รองรับทุก HTTP request
Route::any('foo', function() { return 'Hello World'; });
ถ้าต้องการบังคับให้เข้าใช้งาน URL ผ่าน HTTPs เท่านั้น ก็สามารถทำได้ง่ายๆ แค่เปลี่ยน parameter ตัวที่สองเป็น array เข้าไป
Route::get('foo', array('https', function() { return 'Must be over HTTPS'; }));
Laravel มีคลาส URL ที่มีฟังก์ชัน to() เพื่อใช้สร้างลิงค์สำหรับ route ที่เราประกาศไว้ เช่น ถ้าต้องการสร้างลิงค์ไปที่ Route::get(‘foo’) ก็เรียกใช้ URL::to() ได้เลย
$url = Route::to('foo');
เราสามารถรับค่าจาก url ที่มีการ route ไว้และส่งต่อเป็น parameters ไปยัง callback ได้เลย เช่น รับไอดีของผู้ใช้ เพื่อนำไปดึงข้อมูลมาแสดง
Route::get('user/{id}', function($id) { return 'User '.$id; });
เราสามารถสร้างข้อบังคับ (constraint) สำหรับ parameter ที่รับผ่าน route ให้รับเฉพาะตัวเลขหรือตัวหนังสือก็ได้
Route::get('user/{name}', function($name) { // }) ->where('name', '[A-Za-z]+'); Route::get('user/{id}', function($id) { // }) ->where('id', '[0-9]+');
หรือจะรับ parameter พร้อมๆ กันเลย ก็ทำได้นะครับ ส่วน constraint ก็ส่งเป็น array แทน
Route::get('user/{id}/{name}', function($id, $name) { // }) ->where(array('id' => '[0-9]+', 'name' => '[a-z]+'));