laravel路由檔案在「routes」目錄裡。 Laravel中所有的路由檔案定義在routes目錄下,它裡面的內容會自動被框架載入;該目錄下預設有四個路由檔案用來給不同的入口使用:web.php、api.php、console.php等。
本教學操作環境:windows7系統、Laravel6版,DELL G3電腦。
在 Laravel 要簡單定義一個路由非常方便,傳遞一個 URI 和閉包即可。
Route::get('foo', function () { return 'Hello World'; })
Laravel 中所有的路由定義在 routes 目錄下,這個目錄下的內容會自動被框架載入。 routes 目錄中預設有四個路由檔案用於給不同的入口使用:web.php、api.php、 console.php 和 channels.php。
web.php 檔案包含的路由都位於RouteServiceProvider 所定義的web 中間件組約束之內,因而支援Session、CSRF 保護以及Cookie 加密功能,如果應用程式無需提供無狀態的、RESTful 風格的API,那麼路由基本上都要定義在web.php 檔案中。
api.php 檔案包含的路由位於api 中間件群組約束之內,支援頻率限制功能,這些路由是無狀態的,所以請求透過這些路由進入應用程式需要透過token進行認證並且不能存取Session 狀態。
console.php 檔案用於定義所有基於閉包的控制台命令,每個閉包都被綁定到一個控制台命令並且允許與命令列IO 方法進行交互,儘管這個檔案並沒有定義HTTP 路由,但它定義了基於控制台的應用程式入口(路由)。
channels.php 檔案用於註冊應用支援的所有事件廣播頻道。
許多項目,基本上都是以 routes/web.php 為起點進行開發的,它能實現快速開發一個項目的需要。在 routes/web.php 中定義的路由在瀏覽器中是可以直接存取到的。例如,在瀏覽器中輸入http://your-app.dev/user 位址來存取下面的路由:
Route::get('/user', 'UsersController@index');
定義在routes/api.php 中的路由被嵌套在了一個路由組裡,這是在RouteServiceProvider 中設定的。這個群組裡的路由都使用了 /api 這個 URI 前綴,這樣在你定義路由的時候,就不必再手動加入這個前綴了。如果你不想使用 /api 這個前綴的話,那麼可以在 RouteServiceProvider 中修改。
/** * Define the "api" routes for the application. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); }
可用的路由方法
每一個HTTP 請求類型都有對應的路由方法可供使用:
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);
有時一個路由需要能夠符合多個請求類型,這時可以用match 方法。
Route::match(['get', 'post'], '/', function () { // });
如果希望一個路由能夠匹配所有請求類型的話,使用any 方法:
Route::any('foo', function () { // });
CSRF 保護
使用Route::post、Route ::put、Route::patch 和Route::delete 定義的路由,要求存取它們的HTML 表單都要傳遞一個CSRF token,否則請求會被拒絕。你可以在 CSRF 文件裡閱讀更多這方面的內容。
<form method="POST" action="/profile"> {{ csrf_field() }} ... </form>
重定向路由
如果你要將一個路由重新導向到另一個路由,可以使用 Route::redirect 方法。這就節省定義一個完整路由或控制器來操作簡單的重定向帶來的一些麻煩:
Route::redirect('/here', '/there', 301);
#視圖路由
如果你只是要簡單回傳一個視圖,可以使用Route::view 方法,類似Route::redirect 方法,也節省了一些麻煩。 view 方法的第一個參數是 URI,第二個參數是視圖名稱。另外,也可以使用可選的第三個數組類型參數向視圖傳遞資料:
Route::view('/welcome', 'welcome'); Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
【相關推薦:laravel影片教學】
以上是laravel路由檔案在哪一個目錄裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!