Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,936

HOME > บทความจากสมาชิก > Route::In Laravel PHP Framework Part 2



 
Clound SSD Virtual Server

Route::In Laravel PHP Framework Part 2

Route::In PHP Laravel Framework Part 2 วันนี้มาต่อเรื่องที่ค้างไว้เมื่อวานนะครับ เราจะมาพูดถึงเรื่องการกรอง URL กัน Route ของ Laravel มี ฟังก์ชัน filter ให้ ซึ่งจะมีประโยชน์ในการตรวจสอบสิทธิ์และเพิ่มการจัดการสิทธิ์การเข้าถึง เช่น เมื่อมีการเรียกฟังก์ชัน admin_create เรามาดูตัวอย่างกัน

เริ่มแรกเราก็สร้าง filter ขึ้นมาก่อน

Code (PHP)
Route::filter('filter', function()
{ return Redirect::to('home'); });


ทีนี้เราก็แทรก ไว้ใน route ได้เลย

Code (PHP)
Route::get('blocked', array('before' => 'filter', function()
{ return View::make('blocked'); }));


เราสามารถกำหนดให้ filter ทำงานก่อนหรือหลัง ได้ อย่างในตัวอย่าง เรากำหนดให้เมื่อ มีการเรียก download controller หลังจากนั้นก็เรียก log controller

Code (PHP)
Route::get('download', array('after' => 'log', function()
{     ////   }));


เราสามารถแทรกหลายๆ controller ลงไปได้อีก อย่างในตัวอย่าง ก่อนที่จะเรียก create เราจะให้ class auth กับ csrf ทำงานเพื่อตรวจสอบสิทธิ์ และกรองค่าที่ไม่ปลอดภัยก่อน

Code (PHP)
Route::get('create', array('before' => 'auth|csrf', function()
{  //  }));


ความพิเศษอีกอย่างคือเราสามารถส่ง parameter ไปพร้อมกับตอนเรียกใช้งาน controller ได้เลย

Code (PHP)
Route::get('panel', array('before' => 'role:admin', function()
{ //// }));


Pattern Filters

บางครั้งเราต้องการตรวจสอบสิทธิ์ของผู้ใช้งาน ก่อนจะเข้าถึง ฟังชันที่เกี่ยวกับการจัดการระบบ
เราต้องกำหนดแบบนี้เลยครับ

Code (PHP)
Route::filter('pattern: admin/*', 'auth');


จะเหมือนตัวอย่างข้างบน ทุกการเรียกใช้ ฟังชันใน controller admin จะถูกดึงเข้า ไปตรวจใน controller auth ก่อน
Code (PHP)
Route::filter('pattern: admin/*', array('name' => 'auth', function()
{  //// }));


Global Filters

เราสามารถสร้างตัวกรองระดับที่ทุกการเรียกใช้จะเข้ามาตรวจใน route นี้ก่อนโดยใน laravel มีตัวอย่างนำมาให้แล้ว ตัวไฟล์จะอยู่ที่ application/routes.php

laravel_global_filter

Route Groups

อยากสร้างตัวกรองเป็นแบบกลุ่มก็สร้างได้เลยครับ ลักษณะจะเหมือนจับฟังชันแม่ฟังชันลูก

Code (PHP)
Route::group(array('before' => 'auth'), function()
{
Route::get('panel', function(){});
Route::get('dashboard', function(){});
});



Named Routes

เป็นการสร้างชื่อเล่นให้กับ route ครับ ลักษณะจะเป็นแบบใน MYSQL ที่เราใช้คำว่า as ทำให้ชื่อ filed สั้นลง ใน larval ก็เช่นเดียวกัน เมื่อเราเรียกใช้ home ก็จะลิ้งไปยัง admin/index นะครับ

สร้าง named route:

Code (PHP)
Route::get('admin/index', array('as' => 'home', function()
{
    return "Hello World";
}));


สร้างลิ้งโดยใช้ named route ที่เราสร้างข้างบน

Code (PHP)
$url = URL::to_route('home');


สร้างการส่งกลับโดยใช้ลิ้งที่เราสร้าง

Code (PHP)
return Redirect::to_route('home');


บางครั้งเราก็ต้องการตรวจสอบที่มาของรีเควสก็ตรวจได้ง่ายๆแบบในตัวอย่างเลยครับ

Code (PHP)
if (Request::route()->is('home'))
{
    // The "home" route is handling the request!
}



HTTPS Routes

บางครั้งเราต้องใช้ https ก็สามารถใส่ option เสริมเข้าไปแบบในตัวอย่างได้เลยครับ

Code (PHP)
Route::get('login', array('https' => true, function()
{return View::make('login');}));


หรือจะใช้ฟังก์ชัน secure ของ route ได้เลยครับ

Code (PHP)
Route::secure('GET', 'login', function()
{
    return View::make('login');
});
Bundle Routes


Bundle คือส่วนขยายของ laravel นั้นเองครับ ในตัวอย่างนี้เราจะกำหนดค่า url ให้ bundle นะครับ ไฟล์ที่จะแก้นั้นอยู่ที่
applications/bundle.php

Code (PHP)
return array(
    'admin' => array('handles' => 'admin'), 
);


Handles จะบอกให้ laravel โหลด bundle ชื่อว่า admin ขึ้นมาเมื่อเรียกใช้ admin
แล้วเราก็มาสร้าง route ให้กับ bundle ที่ไฟล์ route.php เลยครับ

Code (PHP)
Route::get('(:bundle)', function()
{
    return 'Welcome to the Admin bundle!';
});



Controller Routing

ใน laravel นั้นเราต้องสร้าง route ให้ controller ด้วยนะครับ ไม่สร้างแปลว่า ไม่อนุญาตให้เข้าถึง controller นั้น ตัวอย่างข้างล่างเป็นการสร้าง Route ให้ controller ทั้งหมด

Code (PHP)
Route::controller(Controller::detect());


Controller::detect จะส่งกลับค่า controller ทั้ง app เลย
สร้าง Route ให้ controller ใน bundle

Code (PHP)
Route::controller(Controller::detect('admin'));


สร้าง Route ให้ method

Code (PHP)
Route::get('welcome', '[email protected]');


เก็บ log ด้วยเลยก็ได้

Code (PHP)
Route::get('welcome', array('after' => 'log', 'uses' => '[email protected]'));


สร้างชื่อเล่นให้ method index ในcontroller home ให้ชื่อเล่นว่า home.welcome เมื่ิอมีการเรียก parameter welcome

Code (PHP)
Route::get('welcome', array('as' => 'home.welcome', 'uses' => '[email protected]'));
CLI Route Testing


เราสามารถทดสอบ Route ที่เราสร้างผ่าน command line ได้ผ่าน คำสั่ง artisan เลยผลที่ออกมาจะเหมือน ใช้คำสั่ง var_dump

Code (PHP)
php artisan route:call get api/user/1







   
Share
Bookmark.   

  By : taqman
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2013-05-09
  Download : No files
Sponsored Links
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
แก้ปัญหา Facebook Like หายเมื่อเปลี่ยนจาก HTTP เป็น HTTPS
ในช่วงนี้หลายๆ เว็บกำลังเปลี่ยน เว็บจาก HTTP เป็น HTTPS และถ้ามีการใช้ Plugin Facebook Like / Shared คงจะเจอปัยหา Line หายกัน
Rating : Update : 2018-09-18 15:14:43
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
วิธีใช้ Notepad++ กับปลั๊กอินที่ใช้สำหรับทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน จำเป็นอย่างยิ่งในการเขียนโปรแกรม
Rating : Update : 2019-07-18 15:09:35
C#/VB.Net  สร้าง Line notify เข้า Line ส่วนตัวหรือ Group สำหรับทำระบบแจ้งเตือนผ่านระบบ line
C#/VB.Net สร้าง Line notify เข้า Line ส่วนตัวหรือ Group สำหรับทำระบบแจ้งเตือนผ่านระบบ line
สร้าง Line notify ด้วย C#.VB.Net สำหรับทำระบบแจ้งเตือนผ่านระบบ line application
Rating : Update : 2019-04-24 06:39:29
(C#) วน Loop ข้อมูลใน Array String อย่างไร จึงจะ Loop ตามการเลือก CheckBoxList แบบไม่ใช้ MSSQL
(C#) วน Loop ข้อมูลใน Array String อย่างไร จึงจะ Loop ตามการเลือก CheckBoxList แบบไม่ใช้ MSSQL
บทความเรื่อง (C#) วน Loop ข้อมูลใน Array String อย่างไร จึงจะ Loop ตามการเลือก CheckBoxList แบบไม่ใช้ MSSQL ครับ
Rating : Update : 2019-11-11 10:18:13
2 หัวใจหลักของการทำ SEO ยุค 2018 เรื่องที่ไม่ควรละเลยสำหรับคนทำเว็บ
2 หัวใจหลักของการทำ SEO ยุค 2018 เรื่องที่ไม่ควรละเลยสำหรับคนทำเว็บ
กลยุทธ์ทางการตลาดที่หลายต่อหลายคนที่มักจะต่างหลีกไม่พ้นในสังคมสมัยนี้นั้นคือ การทำ”SEO”เพราะการทำ “SEO “ถือเป็นการโปรโมทเว็บไซต์ของเราให้เป็นที่รู้จักของตลาดบนโลกออนไลน์
Rating : Update : 2018-10-17 13:22:26
SQL Server 2008 การ SELECT แบบ LIKE % % ใน Query Builder
SQL Server 2008 การ SELECT แบบ LIKE % % ใน Query Builder
พอดีวันนี้นั่งเขียนโปแรกรม ฐานข้อมูลลูกค้าอยู่ มีจุดที่ต้องการค้นหา โดยใช้ like % % ซึ่งปกติ ผมจะมักใช้งาน query builder มากว่า มานั่งเขียนโค้ดเองอยู่แล้ว
Rating : Update : 2018-10-16 10:41:57
C# DataGridView กับ Event  และ Method แบบ บ้านๆ
C# DataGridView กับ Event และ Method แบบ บ้านๆ
C# DataGridView กับ Event และ Method แบบ บ้านๆ
Rating : Update : 2019-07-18 14:47:30
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่