Laravel5.1 路由 -路由分組
路由分組有啥好處?

有時候啊 一大堆路由它們都有共同的地方,比如都使用一個中間件(過兩天寫)或是前綴都一樣,避免代碼重復 我們可以將他們分到一組中。
1 路由分組可以共享哪些屬性?
中間件 middleware。
控制器的命名空間 namespace。
子域名 domain
路由前綴
1.1 中間件
關于中間件大K還沒有寫筆記介紹,這里先簡單說下 中間件就是接收到請求后驗證一些東西或相應后驗證一些東西,比如Laravel自帶的Auth中間件 就是驗證用戶有沒有登錄進來,如果用戶沒用登錄,那么就會自動跳轉到登錄頁面,我們完全不用實現這一方面的邏輯。
好啦 回歸正題,咱一塊兒看看路由分組咋寫:
/** * 這就是一個路由分組 /user和/user/profile都將使用auth中間件。 */ Route::group(['middleware' => 'auth'], function (){ Route::get('/user', function (){ }); Route::get('/user/profile', function (){ }); });
1.2 路由前綴
/** * 路由前綴呢 就是講此分組中的所有路由路徑前加個前綴 */ Route::group(['prefix' => 'admin'], function (){ /** * 路由分組是可以嵌套的哦 */ Route::group(['middleware' => 'auth'], function (){ /** * 這條路由不僅使用auth中間件,而且還加了admin前綴,我們通過/admin/user才能訪問 */ Route::get('/user', function (){ }); Route::get('/user/profile', function (){ }); }); /** * 訪問路徑是:/admin */ Route::get('/', function (){ });; });
1.3 子域名
/** * 比如我們可以輸入larger來訪問路由,在子路由中可以通過參數來把larger取到。 */ Route::group(['domain' => '{account}.myapp.com'], function () { Route::get('user/{id}', function ($account, $id) { // }); });
注意:如果想測試子域名你需要使用homestand來設置你的域名。注意:如果想測試子域名你需要使用homestand來設置你的域名。
1.4 命名空間
這又是一個沒寫的點 這里包含控制器的內容,先看例子吧 明天就學控制器了 倒時候做筆記。
/** * 只要指明了命名空間,那么在子路由中所使用的所有控制器都位于App\Http\Controller\Admin這個命名空間下。 */ Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function(){ /** * 其實HomeController在App\Http\Controller\Admin這個命名空間下。 */ Route::get('/', 'HomeController@index'); });
1.5 分組命名
補充一點,前一篇的基礎文章我們學了給路由命名,那么分組可不可以命名呢,Yo Man。。當然可以:
/** * 跟普通路由一樣 也是用as來命名但是首字母最好大寫后面跟倆冒號 代表它是一個分組 如果這樣寫 我們就可以通過 route('Admin::index')方式來找到它了 */ Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'Admin::'], function(){ Route::get('/', ['as' => 'index','uses' => 'HomeController@index']); });
Laravel NAT
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。