ตอนที่2: ลองเล่น Routing
Basic Routing หรือ เส้นทาง อย่างเช่น
ก็จะแปลได้ประมาณว่า ไปที่หน้า my/page ของเว็บไซต์ที่ชื่อว่า domain.com ผ่านโปรโตคอลที่ชื่อว่า http อะไรแบบนี้เป็นต้น
ก่อนอื่นใด เริ่มแรกเลย ไปที่ app/routes.php เราจะเจอกับ
ถ้าเราลองเปลี่ยนจาก return View::make('hello'); มาเป็น return "Hello Laravel!"; เราก็จะได้หน้าตาออกมาประมาณนี้
เห็นมั้ยว่ามันไม่ยากอะไรเลย ;) ถ้าลองสังเกตุวิธีการเขียน Routing มันจะคล้ายๆ กับ jQuery เลยนะ เขียนสนุกขึ้นเยอะเลย ^_^
* subdomain ตามรูปมาจากตอนที่แล้วนะจ๊ะ
จาก Routing ที่เป็นตัวอย่างด้านบน เราสามารถเขียนแบบนี้ก็ได้
เหมือนเขียน javascript เลยอ่ะ เหยดดดดเข้! ยัง! ยังไม่พอ เล่นต่ออีก เราจะมาเล่นกับ Route::get กันให้หนำใจกันซะก่อน ฮ่าๆ ๆ ๆ
แล้วทีนี้เราก็จะลองเข้าผ่าน
ก็จะได้ผลลัพธ์ออกมาเป็นแบบนี้
Route Parameters - การใช้ตัวแปรใน Route พอเราเริ่มที่จะมี Route เยอะขึ้น มันก็จะเป็นแบบนี้ -___-"
แต่ถ้าเราใช้ parameters เข้ามาช่วยนะซาร่าห์มันจะสะดวกขึ้นเยอะเลย
จากโค้ดด้านบนวิธีใช้ก็ง่ายมากเลยนะ
Route::get('/books/{page?}', function($page="default") {});
แค่ใช้ ปีกกา {} หลังค่าที่เราต้องการใช้งาน จากนั้นก็มาเพิ่มตัวแปรตรง function เพื่อรับค่าที่ส่งมาจาก GET ส่วนเครื่องหมาย ? ที่อยู่ใน {} ใส่เพื่อบอกว่าตัวแปรตัวนี้จะมีก็ได้ไม่มีก็ได้(Optional)
ใช้หลายๆ ตัวก็ได้ อย่างเช่น
เป็นต้น
จุดหนึ่งที่รู้สึกว่ามันเออเจ๋งว่ะก็คือ มันทำ Regular Expression ได้ด้วยล่ะเออ เช่น
View Data - แสดงผลหน้า view กันเถอะ
# app/route.php (มักง่ายใช้โค้ดเก่าต่อเลยละกัน)
# app/view/hello.php ใช้ view ที่ติดมาตั้งแต่แรกนั่นล่ะ
หน้าเบราเซอร์
ขออนุญาตตัดจบแค่นี้ก่อนนะครับ งานงอกฮะ
เดี๋ยวคราวหน้าเราจะมาลองเล่น Filter กันต่อ ส่วนรายละเอียดอื่นๆ ของ Route สามารถเข้าไปอ่านต่อจากใน Document นี้ได้เลยจ้า มีให้เล่นกันเยอะมว๊าาาาก <3
http://domain.com/my/page
ก็จะแปลได้ประมาณว่า ไปที่หน้า my/page ของเว็บไซต์ที่ชื่อว่า domain.com ผ่านโปรโตคอลที่ชื่อว่า http อะไรแบบนี้เป็นต้น
ก่อนอื่นใด เริ่มแรกเลย ไปที่ app/routes.php เราจะเจอกับ
Route::get('/', function()
{
// Call app/views/hello.php
return View::make('hello');
});
ถ้าเราลองเปลี่ยนจาก return View::make('hello'); มาเป็น return "Hello Laravel!"; เราก็จะได้หน้าตาออกมาประมาณนี้
เห็นมั้ยว่ามันไม่ยากอะไรเลย ;) ถ้าลองสังเกตุวิธีการเขียน Routing มันจะคล้ายๆ กับ jQuery เลยนะ เขียนสนุกขึ้นเยอะเลย ^_^
* subdomain ตามรูปมาจากตอนที่แล้วนะจ๊ะ
จาก Routing ที่เป็นตัวอย่างด้านบน เราสามารถเขียนแบบนี้ก็ได้
$hello = function(){
return View::make('hello');
}
Route::get('/', $hello);
เหมือนเขียน javascript เลยอ่ะ เหยดดดดเข้! ยัง! ยังไม่พอ เล่นต่ออีก เราจะมาเล่นกับ Route::get กันให้หนำใจกันซะก่อน ฮ่าๆ ๆ ๆ
Route::get('/first/page', function() {
return 'First!';
});
Route::get('/second/page', function() {
return 'Second!';
});
Route::get('/third/page', function() {
return 'Potato!';
});
แล้วทีนี้เราก็จะลองเข้าผ่าน
http://laravel.localhost.com/first/page
http://laravel.localhost.com/second/page
http://laravel.localhost.com/third/page
ก็จะได้ผลลัพธ์ออกมาเป็นแบบนี้
Route Parameters - การใช้ตัวแปรใน Route พอเราเริ่มที่จะมี Route เยอะขึ้น มันก็จะเป็นแบบนี้ -___-"
Route::get('/books', function() {
return "Books in the default category.";
});
Route::get('/books/fiction', function() {
return "Books in the fiction category.";
});
Route::get('/books/science', function() {
return "Books in the science category.";
});
Route::get('/books/romance', function() {
return "Books in the romance category.";
});
แต่ถ้าเราใช้ parameters เข้ามาช่วยนะซาร่าห์มันจะสะดวกขึ้นเยอะเลย
Route::get('/books/{page?}', function($page="default") {
return "Books in the {$page} category.";
});
จากโค้ดด้านบนวิธีใช้ก็ง่ายมากเลยนะ
Route::get('/books/{page?}', function($page="default") {});
แค่ใช้ ปีกกา {} หลังค่าที่เราต้องการใช้งาน จากนั้นก็มาเพิ่มตัวแปรตรง function เพื่อรับค่าที่ส่งมาจาก GET ส่วนเครื่องหมาย ? ที่อยู่ใน {} ใส่เพื่อบอกว่าตัวแปรตัวนี้จะมีก็ได้ไม่มีก็ได้(Optional)
ใช้หลายๆ ตัวก็ได้ อย่างเช่น
Route::get('/books/{page?}/{value?}', function($page="my page", $value="default value") {
return "Books in the {$page} category with {$value}.";
});
เป็นต้น
จุดหนึ่งที่รู้สึกว่ามันเออเจ๋งว่ะก็คือ มันทำ Regular Expression ได้ด้วยล่ะเออ เช่น
Route::get('/books/{page?}/{value?}', function($page=null, $value=null) {
//
})->where('page'=>'[a-ZA-Z]+', 'value'=>'[0-9]+');
View Data - แสดงผลหน้า view กันเถอะ
# app/route.php (มักง่ายใช้โค้ดเก่าต่อเลยละกัน)
Route::get('/books/{page?}/{value?}', function($page="my page", $value="default value") {
// จับตัวแปรมาอยู่ใน Array
$data = array('page'=>$page, 'value'=>$value);
// แล้วส่งค่าไปยัง views/hello.php
return View::make('hello', $data);
});
# app/view/hello.php ใช้ view ที่ติดมาตั้งแต่แรกนั่นล่ะ
<h1>This is view page</h1>
Books in the <?=$page?> category with <?=$value?>.
หน้าเบราเซอร์
ขออนุญาตตัดจบแค่นี้ก่อนนะครับ งานงอกฮะ
เดี๋ยวคราวหน้าเราจะมาลองเล่น Filter กันต่อ ส่วนรายละเอียดอื่นๆ ของ Route สามารถเข้าไปอ่านต่อจากใน Document นี้ได้เลยจ้า มีให้เล่นกันเยอะมว๊าาาาก <3
Comments
Post a Comment