laravel4 route controller

    วันนี้ขอมาเสนอวิธีหนึ่งในการ Route แบบมีหลักการวิธีหนึ่งครับ

//for member http://yourdomain.com/member/yourClassController
Route::group(array('prefix' => 'member'),function(){
     Route::controller('/account','AccountController');
     Route::controller('/project','ProjectController');
     Route::controller('/organizations','OrganizationController');
     Route::controller('/auth','AuthController');
});

//for public page http://yourdomain.com/yourClassController
Route::controller('/docs','DocsController');
Route::controller('/pricing','PricingController');

//**you must set rootClassController at last line
Route::controller('/','MainController');

   จากตัวอย่างข้างต้น เราจะ ROUTE member group ไว้ที่เดียวกัน จะเป็นหน้าที่ต้อง LOGIN ก่อนทั้งหมด และ ด้านล่างที่ไม่อยู่ใน group จะเป็นหน้าที่เปิดให้ใช้โดยบุคคลทั่วไป(public) เช่นหน้าแรก,สมัครสมาชิก,อื่นๆ
จากนั้นเราจะทำตามกฏที่เข้าใจร่วมกัน เช่นจากตัวอย่างข้างบน ถ้าเราเรียกไซต์ผ่าน URL ด้วย http://yourdomain.com/auth/login

ที่ AuthController จะต้องสร้าง Method ดังนี้ [action][method] โดยตัวแรกของ method เป็นตัวใหญ่

public getLogin()
{
     ...
}

จากตัวอย่างนี้ action คือ get และ method คือ Login ครับ

อีกตัวอย่างหนึ่งถ้าเรามี FORM ที่จะ POST ค่ามาที่ http://yourdomain.com/auth/login

ที่ AuthController จะต้องสร้าง Method ดังนี้

public postLogin()
{
     $post = Input::get();
     ...
}

จากตัวอย่างนี้ action คือ post และ method คือ Login ครับ

ในกรณีที่เรียก URL โดยไม่ระบุ method เช่น http://yourdomain.com/auth
ที่ AuthController จะต้องสร้าง Method ดังนี้ โดย default จะเรียกที่ getIndex() ครับ

public getIndex()
{
    ...
}

กรณีที่ต้องการส่ง PARAMETER ไปด้วยเช่น http://yourdomain.com/auth/login /1/2,…,N
ให้เราสร้าง method ดังนี้

public getLogin($param1,$param2,...,$paramN)
{
     ...
}

Related posts:

This entry was posted in laravel4. Bookmark the permalink.