Laravel框架路由配置總結、設定技巧大全
基本路由
您的應用程式的絕大多數路由將在 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' =>
'[email protected]'));
現在您在生成 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 不僅允許您路由至閉包,也可以路由至控制器類,甚至允許建立 資源控制器.
相關推薦
Laravel框架路由配置總結、設定技巧大全
基本路由 您的應用程式的絕大多數路由將在 app/routes.php 檔案中定義。Laravel 中最簡單的路由由一個 URI 和一個閉包呼叫組成。 基本 GET 路由 程式碼如下: Route::get('/', function() { return 'Hello
laravel 框架路由、ajax post提交方式頭部,控制器。中介軟體
一、路由 1.1 別名 Route::get('/admin/user',['as'=>'au','uses'=>function(){ //通過別名建立url route('別名',['引數']);
YII框架路由配置
pan lena oot allow ews index.php .htaccess can ride 首先要在服務器配置(httpd.conf)中開啟重寫模塊: #開啟重寫模塊,將其前面的#去掉 LoadModule rewrite_module modules/mo
laravel 多路由配置
在用laravel 框架開發大型應用的時候,由於 laravel 預設是隻有一個路由檔案,如果把專案所有模組的路由放在一個路由檔案下,那麼該路由檔案就顯得很臃腫,以至於後期難以維護,解決方案是根據不同模組配置不同路由檔案。 首先說下這裡的環境:wamp + composer + larave
CSS——總結、小技巧
1、在使用絕對定位時,同時設定left、right為0,margin為auto,可以做到水平居中,同時設定top、bottom為0,margin為auto,可以設定水平居中 2、justify-content用於設定或檢索彈性盒子元素在主軸(橫軸)方向上的對齊方式。align-content 屬
Java SSM框架的配置方法、MVC結構的分析、響應的流程
今天頭一次配置成功一個SSM框架,興奮之餘,還應該從使用的角度,將整個ssm配置的方法,配置的原因,認真的分析一下。在結束了對SSM框架簡單的分析之後,就要開始迴歸基礎,全面的認真複習。所以這個文件,要儘量的完整,目標就是,這個文件是是對SSM框架的學習,也是一個將來複習的資料。 1 RESOUR
mysql 5.6.20的安裝、配置服務、設定編碼格式
一、安裝 安裝環境 系統:Window 32 版本:Mysql 5.6.20 2、 我們開啟下載下來的mysql-5.6.20-win32.msi安裝包 3、 選擇Next 下一步:
laravel框架關鍵技術解析之02-1 理解元件化開發 手動構建laravel框架 路由元件
此篇利用元件化開發的思想,構建類似laravel的框架,對理解laravel有幫助。 在閱讀此篇之前,建議先了解laravel容器的概念。 推薦一篇不錯的文章<<Laravel 服務容器例項教程 —— 深入理解控制反轉(IoC)和依賴注入(DI)>>https://l
laravel框架之後臺登入、退出
我們在寫後臺管理系統時,登入,退出是避免不了的,那我們如何使用laravel實現呢? 首先,我們來看看登入如何實現? //登入 public function logins(){ //post方式則為登入操作 if(Request()->isMethod('post')
最新解決laravel框架路由無法顯示的問題
laravel版本為: const VERSION = '5.2.45';今天開始學習傳說中php非常好用的laravel框架,發現了系統的路由可以顯示而我自己寫的卻不可以:http://localhost/laravel/public/basic 顯示:找到
laravel框架——路由
//用例1 get請求Route::get('/hello',function (){ return 'Hello word';});Route::get('/', function ()
nginx 配置laravel框架域名配置
all cgi name ESS stc params lis fas 添加 server { listen 80; server_name admin.meiquick.local.com; #charse
每天一點點之vue框架開發 - vue-router路由進階(路由別名、跳轉、設定預設路由)
路由別名 在main.js中的路由中新增name來建立別名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] 在元件中的路由中通過
Laravel框架學習(路由、控制器、模型)
1、路由 Route::any('/', function () { return view('welcome'); }); /* 路由群組 */ Route::group(['prefix'=>'member'],function(){ Route::
【VIP視訊網站專案三】專案框架搭建、專案路由配置、資料庫表結構設計
一、專案路由的設計 視訊網站前臺頁面路由設計 路由 請求方法 模板 作用 / GET Index.html
Java框架學習_Spring(二)Spring_註解IOC的配置、常用註解總結、xml和註解的區別
Spring的註解開發,改變了傳統的程式設計方式,目的都是IOC,即將類的建立和賦值的權利轉交給Spring,我們可以用註解來代替前面所配置的xml的各種操作,十分的方便 1、Spring_註解IOC的配置: 導包:Spring註解IOC所用的jar包 配置xml
Java框架學習_Spring(五)AOP註解的配置與簡單測試、註解的通知型別總結、切入點的註解
前一篇已經對AOP_xml的配置作了學習,這次採用註解的方式,其實大同小異,改一下xml配置和切面類就好了 1、AOP註解的配置與測試: 導包:Spring_AOP開發jar包 編寫xml配置(預設名applicationContext.xml) <
1.關於laravel框架中的路由、控制器、檢視、模型
路由:App/Http/routes.php 1.普通路由形式 Route::get('/get',function(){return view('getview');}); Route::post('/post',function(){return view('postv
Flask框架(二)—— 反向解析、配置資訊、路由系統、模板、請求響應、閃現、session
Flask框架(二)—— 反向解析、配置資訊、路由系統、模板、請求響應、閃現、session 目錄 反向解析、配置資訊、路由系統、模板、請求響應、閃現、session 一、反向解析 1、什麼是反向解析 2、使用 二、配置資訊 1
【框架篇】mvc、mvp、mvvm使用關系總結
mvc模型 details eset 網站架構 特性 自動 分享 規模 arch MVC MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯