亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

Laravel框架路由配置總結、設置技巧大全

2024-05-04 23:25:34
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Laravel框架路由配置總結、設置技巧大全,Laravel 中最簡單的路由由一個URI和一個閉包調用組成,需要的朋友可以參考下
 
 

基本路由

您的應用程序的絕大多數路由將在 app/routes.php 文件中定義。Laravel 中最簡單的路由由一個 URI 和一個閉包調用組成。

基本 GET 路由

復制代碼代碼如下:

Route::get('/', function()
{
return 'Hello World';
});

基本 POST 路由
復制代碼代碼如下:

Route::post('foo/bar', function()
{
return 'Hello World';
});

注冊一個路由以響應所有 HTTP 方法
復制代碼代碼如下:

Route::any('foo', function()
{
   return 'Hello World';
});

強制一個路由必須通過 HTTPS 訪問
復制代碼代碼如下:

Route::get('foo', array('https', function()
{
    return 'Must be over HTTPS';
}));

經常您需要根據路由產生 URLs,您可以通過使用 URL::to 方法:
復制代碼代碼如下:
$url = URL::to('foo');

 

路由參數

復制代碼代碼如下:

Route::get('user/{id}', function($id)
{
return 'User '.$id;
});

可選的路由參數
復制代碼代碼如下:

Route::get('user/{name?}', function($name = null)
{
return $name;
});

帶默認值的可選的路由參數
復制代碼代碼如下:

Route::get('user/{name?}', function($name = 'John')
{
return $name;
});

帶正則表達式約束的路由
復制代碼代碼如下:

Route::get('user/{name}', function($name)
{
//
})
->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id)
{
//
})
->where('id', '[0-9]+');

 

路由過濾器

  路由過濾器提供了一種限制訪問指定路由的簡單的方法,這在您需要為您的站點創建需要認證區域的時候非常有用。Laravel 框架中包含了一些路由過濾器,比如 auth 過濾器、auth.basic 過濾器、guest 過濾器、以及 csrf 過濾器。它們被存放在 app/filters.php 文件中。

定義一個路由過濾器

復制代碼代碼如下:

Route::filter('old', function()
{
if (Input::get('age') < 200)
{
return Redirect::to('home');
}
});

  如果一個響應從一個路由過濾器中返回,這個響應即被認為是這個請求的響應,路由將不被執行,任何關于這個路由的 after 過濾器也將被取消執行。

 

  為一個路由指定一個路由過濾器

復制代碼代碼如下:

Route::get('user', array('before' => 'old', function()
{
return 'You are over 200 years old!';
}));

為一個路由指定多個路由過濾器

 

 

復制代碼代碼如下:

Route::get('user', array('before' => 'auth|old', function()
{
return 'You are authenticated and over 200 years old!';
}));

指定路由過濾器參數
復制代碼代碼如下:

Route::filter('age', function($route, $request, $value)
{
//
});
Route::get('user', array('before' => 'age:200', function()
{
return 'Hello World';
}));

  當路由過濾器接收到作為第三個參數的響應 $response:
復制代碼代碼如下:

Route::filter('log', function($route, $request, $response, $value)
{
//
});

基本路由過濾器的模式

 

您可能希望根據 URI 為一組路由指定過濾器。

復制代碼代碼如下:

Route::filter('admin', function()
{
//
});
Route::when('admin/*', 'admin');

在上面的例子中,admin 過濾器將應用帶所有以 admin/ 開頭的路由。星號作為一個通配符,將適配到所有字符的組合。

 

您也可以通過指定 HTTP 方法約束模式過濾器:

 

復制代碼代碼如下:

Route::when('admin/*', 'admin', array('post'));

 

過濾器類

對于高級的過濾器,您可以使用一個類代替閉包函數。因為過濾器類是位于應用程序之外的 IoC 容器,您能夠在過濾器中使用依賴注入,更易于測試。

定義一個過濾器類

復制代碼代碼如下:

class FooFilter {
public function filter()
{
// Filter logic...
}
}

注冊一個基于類的過濾器
復制代碼代碼如下:

Route::filter('foo', 'FooFilter');

 

命名路由

命名路由在更易于在生成跳轉或 URLs 時指定路由。您可以像這樣為路由指定一個名字:

復制代碼代碼如下:

Route::get('user/profile', array('as' => 'profile', function()
{
//
}));

您也可以為控制器的方法指定路由名字:
復制代碼代碼如下:

  Route::get('user/profile', array('as' => 'profile', 'uses' => 
'UserController@showProfile'));

  現在您在生成 URLs 或跳轉的時候使用路由的名字:

 

 

復制代碼代碼如下:

$url = URL::route('profile');
$redirect = Redirect::route('profile');

您可以使用 currentRouteName 方法獲取一個路由的名字:

 

 

復制代碼代碼如下:

$name = Route::currentRouteName();

 

路由組

有些時候您可能希望應用過濾器到一組路由。您不必要為每個路由指定過濾器,可以使用路由組:

復制代碼代碼如下:

Route::group(array('before' => 'auth'), function()
{
Route::get('/', function()
{
// Has Auth Filter
});
Route::get('user/profile', function()
{
// Has Auth Filter
});
});

 

子域名路由

  Laravel 路由也能夠處理通配符的子域名,并且從域名中獲取通配符參數:

注冊子域名路由

復制代碼代碼如下:

Route::group(array('domain' => '{account}.myapp.com'), function()
{
Route::get('user/{id}', function($account, $id)
{
//
});
});

 

路由前綴

一組路由可以通過在屬性數組中使用 prefix 選項為路由組添加前綴:

為路由組添加前綴

復制代碼代碼如下:

Route::group(array('prefix' => 'admin'), function()
{
Route::get('user', function()
{
//
});
});

 

路由模型綁定

  模型綁定提供了一個簡單的方法向路由中注入模型。比如,不僅注入一個用戶的 ID,您可以根據指定的 ID 注入整個用戶模型實例。首先使用 Route::model 方法指定所需要的模型:

為模型綁定一個變量

復制代碼代碼如下:

Route::model('user', 'User');

然后, 定義一個包含 {user} 參數的路由:
復制代碼代碼如下:

Route::get('profile/{user}', function(User $user)
{
//
});

 

  因為我們已經綁定 {user} 參數到 User 模型,一個 User 實例將被注入到路由中。因此,比如一個 profile/1 的請求將注入一個 ID 為 1 的 User 實例。

  注意: 如果在數據庫中沒有找到這個模型實例,將引發404錯誤。

  如果您希望指定您自己定義的沒有找到的行為,您可以為 model 方法傳遞一個閉包作為第三個參數:

復制代碼代碼如下:

Route::model('user', 'User', function()
{
throw new NotFoundException;
});

  有時您希望使用自己的方法處理路由參數,可以使用 Route::bind 方法:
復制代碼代碼如下:

Route::bind('user', function($value, $route)
{
return User::where('name', $value)->first();
});

引發404錯誤

 

  有兩種方法在路由中手動觸發一個404錯誤。首先,您可以使用 App::abort 方法:

 

復制代碼代碼如下:

App::abort(404);

 

其次,您可以拋出一個 Symfony/Component/HttpKernel/Exception/NotFoundHttpException 的實例。

更多關于處理404異常和為這些錯誤使用使用自定義響應的信息可以在 錯誤 章節中找到。

路由至控制器

Laravel 不僅允許您路由至閉包,也可以路由至控制器類,甚至允許創建 資源控制器.

更多信息請訪問 控制器 文檔。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人午夜激情在线| 日韩精品中文字幕在线观看| 日韩美女av在线免费观看| 国产精品小说在线| 国产精品免费福利| 欧美日韩性生活视频| 国产日韩欧美影视| 国产mv免费观看入口亚洲| 精品国产一区二区在线| 福利一区福利二区微拍刺激| 亚洲激情小视频| 色综合老司机第九色激情| 亚洲精品成人免费| 欧美成aaa人片免费看| 国产精品自拍偷拍视频| 日韩在线视频网站| 91网站在线看| 在线观看免费高清视频97| 亚洲成成品网站| 亚洲成人黄色在线观看| 国产成人小视频在线观看| 精品久久香蕉国产线看观看gif| 狠狠操狠狠色综合网| 久久久久久久999精品视频| 中文字幕v亚洲ⅴv天堂| 久久久精品免费视频| 日本精品久久久久久久| 怡红院精品视频| 欧美色另类天堂2015| 欧美韩日一区二区| 神马久久桃色视频| 自拍偷拍免费精品| 国内精品久久久久久中文字幕| 亚洲精品理论电影| 国产精品一区=区| 日韩欧美主播在线| 久久久久久国产三级电影| 日韩中文字幕av| 亚洲一区二区三区在线免费观看| 午夜欧美大片免费观看| 欧美性20hd另类| 国产成人精品一区二区在线| 2019中文字幕在线免费观看| xvideos亚洲人网站| 91久久夜色精品国产网站| 亚洲精品wwwww| 国产精品久久久久77777| 国产性猛交xxxx免费看久久| 91精品国产91久久久久久不卡| 国产区精品视频| 国产精品久久久久久久app| 日韩中文视频免费在线观看| 精品国产成人在线| 伊人精品在线观看| 国产成人在线视频| 久久黄色av网站| 欧美精品video| 成人两性免费视频| 亚洲人成网在线播放| 国产精品久久久久久搜索| 一区二区三区美女xx视频| 国产精品91久久久久久| 97色伦亚洲国产| 成人国产精品色哟哟| 91亚洲国产成人精品性色| 国产精品久久久久影院日本| 精品国产1区2区| 欧美国产日韩在线| 国产精品视频中文字幕91| 欧美性xxxxx极品娇小| 91免费看视频.| 久久久久久欧美| 亚洲精品一区二区久| 国产欧美一区二区| 久久久久久久久久亚洲| 欧洲亚洲妇女av| 亚洲人精选亚洲人成在线| 亚洲欧美一区二区三区情侣bbw| 国产一区二区三区视频| 国产最新精品视频| 久久精品视频免费播放| 91手机视频在线观看| 91色琪琪电影亚洲精品久久| 日本道色综合久久影院| 国产精品欧美日韩| 欧美黑人一级爽快片淫片高清| 欧美乱人伦中文字幕在线| 18久久久久久| 日本欧美国产在线| 亚洲最新中文字幕| 久久久av一区| 亚洲日韩欧美视频| 中国人与牲禽动交精品| 亚洲一区二区黄| 国产91在线播放| 亚洲久久久久久久久久| 91极品视频在线| 日本亚洲欧洲色α| 国产精品一区二区三区久久| 欧美富婆性猛交| 色综合导航网站| 国产精品自拍偷拍视频| 中文字幕av一区中文字幕天堂| 欧亚精品中文字幕| 亚洲电影免费在线观看| 91av视频在线播放| 久久精品小视频| 国产美女精品视频| 久久乐国产精品| 亚洲毛片在线看| 亚洲一区二区三区在线视频| 欧美亚洲午夜视频在线观看| 中文字幕亚洲自拍| 美女999久久久精品视频| 91精品免费看| 亚洲综合最新在线| 国产欧美精品在线播放| 欧美风情在线观看| 日韩男女性生活视频| 日韩精品日韩在线观看| 国产在线观看精品一区二区三区| 亚洲人午夜精品免费| 国产精品国产三级国产专播精品人| 国产欧美一区二区三区在线| 97成人在线视频| 欧美日韩亚洲系列| 国产中文字幕91| 久久99久久99精品免观看粉嫩| 久久精品国产一区二区电影| 久久精品久久久久电影| 久久久久国产精品免费网站| 国产91精品久| 欧美日韩第一视频| 亚洲精品电影久久久| 韩国美女主播一区| 亚洲第一级黄色片| 国产99久久久欧美黑人| 亚洲一级免费视频| 亚洲精品v天堂中文字幕| 久久久在线观看| 色综合五月天导航| 国产精品69久久久久| 欧美视频在线观看免费| 超在线视频97| 欧美性xxxx极品高清hd直播| 亚洲国产欧美日韩精品| 亚洲一区二区久久| 国产精品专区h在线观看| 日韩一中文字幕| 亚洲综合av影视| 国产91在线播放精品91| 国产精品影片在线观看| 一区二区三区天堂av| 色久欧美在线视频观看| 亚洲综合视频1区| 亚洲精品av在线| 国产亚洲视频在线观看| 久久精品久久久久| 欧美激情久久久久| 国产亚洲欧美日韩美女| 国产成人精品在线视频| 国产不卡视频在线| 国产精品网站入口| 国产欧美日韩中文|