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

Registered : 108,216

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
ดึงข้อมูลจาก oracle ภาษาไทย php
ดึงข้อมูลจาก oracle ภาษาไทย php
วิธีแก้ดึงข้อมูลจาก oracle ??? เป็นภาษาไทย php
Rating : Update : 2019-08-26 11:36:53
(C#) จัดการ CheckBox ให้เลือก Checkbox เฉพาะตามการแสดงตารางที่ค้นหาข้อมูลในปัจจุบันครับ
(C#) จัดการ CheckBox ให้เลือก Checkbox เฉพาะตามการแสดงตารางที่ค้นหาข้อมูลในปัจจุบันครับ
บทความเรื่อง (C#) จัดการ CheckBox ให้เลือก Checkbox เฉพาะตามการแสดงตารางที่ค้นหาข้อมูลในปัจจุบันครับ
Rating : Update : 2019-12-24 16:50:54
php multiple insert ผ่าน Checkbox จะมาพูดเรื่อง Multiple INSERT BY Checkbox จะมีขั้นตอนที่ง่ายมาก
php multiple insert ผ่าน Checkbox จะมาพูดเรื่อง Multiple INSERT BY Checkbox จะมีขั้นตอนที่ง่ายมาก
บันทีกข้อมูลหลายๆ row ผ่าน Checkbox
Rating : Update : 2018-10-11 10:42:03
วิธีการ Convert String ไปเป็น Date Time ของ SQL Server ในรูปแบบต่างๆ
วิธีการ Convert String ไปเป็น Date Time ของ SQL Server ในรูปแบบต่างๆ
Execute the following T-SQL scripts in Microsoft SQL Server Management Studio (SSMS) Query Editor to demonstrate T-SQL CONVERT and CAST functions in transforming string SQL date formats, string time & string datetime data to datetime data type. Practical examples for T-SQL DATE / DATETIME functions.
Rating : Update : 2018-08-10 13:01:19
รู้จักกับ Common Table Expressions หรือ CTE ใน SQL Server
รู้จักกับ Common Table Expressions หรือ CTE ใน SQL Server
CTEs ถือเป็นนิพจน์ตาราง (Table Expression) แบบหนึ่งนิพจน์ตาราง คือ นิพจน์ที่ทำหน้าที่เสมือนตารางได้ สังเกตว่าอะไรที่สามารถประกาศได้ในประโยค FROM ของคำสั่ง SELECT ได้นั่นก็คือ นิพจน์ตาราง ซึ่งมีทั้งที่สามารถจัดเก็บลงในฐานข้อมูลได้ และจัดเก็บไม่ได้นิพจน์ตารางที่จัดเก็บเป็น Object ลงในฐานข้อมูล
Rating : Update : 2019-03-18 14:02:02
(C#) ASP.NET SQL Server Connect to Database แบบ Windows Authentication
(C#) ASP.NET SQL Server Connect to Database แบบ Windows Authentication
บทความเรื่อง (C#) ASP.NET SQL Server Connect to Database ด้วยการติดต่อ ASP.NET กับ SQL Server ในรูปแบบ Windows Authentication ครับ
Rating : Update : 2019-05-10 10:00:28
แก้ปัญหาการส่งอีเมลหลังจากอัพเกรดจาก PHP Version 5.4 ไปเป็น 5.6 โดยใช้ New PHPMailer
แก้ปัญหาการส่งอีเมลหลังจากอัพเกรดจาก PHP Version 5.4 ไปเป็น 5.6 โดยใช้ New PHPMailer
สืบเนื่องมาจากก่อนหน้านี้นั้นได้มีการอัพเกรด PHP Version จาก 5.4 มาเป็น 5.6 ซึ่งทำให้มีผลกระทบกับการส่งอีเมลของระบบดังนั้น วันนี้จึงได้มีข้อมูลดีๆมาแบ่งปันกัน ซึ่งดูตามรายละเอียด
Rating : Update : 2018-05-26 15:54:09
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 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2020 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่