路徑是為您的應用程序創建請求 URL 的一種方式。 這些 URL 不需要與網站上的特定文件相關聯,並且易於閱讀且對 SEO 友好。
在 Laravel 中,路徑是在 le 文件夾中創建的 routes
. 它們在文件中創建 web.php
對於網站,在 api.php
用於 API。
這些 route
被分配到組 middleware
網絡,突出顯示會話狀態和安全性 CSRF
. 中的路線 route/api.php
它們是無狀態的,被分配到 API 中間件組。
預安裝defiLaravel nita 有兩種路徑,一種用於 Web,一種用於 API。 這就是網絡路徑的樣子 web.php
:
Route::get('/', function () {
return view('welcome');
});
所有 Laravel 路徑都是 definiti 位於目錄內的路徑文件中 routes
。 路線管理應用程序, defi在文件中完成 App\Providers\RouteServiceProvider
, 負責自動排列這些文件。 文件 route/web.php
defi完成 Web 界面的路徑。
這是可能的 defi完成此控制器操作的路徑如下:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: 方法 Route::resource
生成應用程序所需的所有基本路徑,並通過控制器類進行管理。
當請求與指定的路由 URI 匹配時,調用該方法 show
defi在控制器中完成 App\Http\ControllersUserController
,將路由參數傳遞給方法。
對於資源,你需要在應用上做兩件事 Laravel. 首先,你需要創建一個資源路徑 Laravel 提供插入、更新、查看和刪除路徑。 其次,創建一個資源控制器,提供插入、更新、查看和刪除的方法。
預安裝defiLaravel nita 有兩種路徑:一種用於 Web,另一種用於 API。 web.php 中的 Web 路由如下所示:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel 中間件 充當請求和反應之間的橋樑。 它可以是某種過濾器組件。
Laravel 與一個工作 中間件 它的任務是確認客戶端應用程序是否已通過驗證。 如果客戶端已確認,則路由將重定向到主頁或登錄頁面。
route
之前的代碼 defi完成主頁的路徑。 每當該路由收到請求時 get
為 /
, 將返回 view
welcome
.
所有 Laravel 路徑都是 defi尼蒂在你的 routing
, 它們位於目錄 dei 內 routes
. 最後, l'AppProvidersRouteServiceProvider
應用程序排列這些記錄。 文件 route/web.php
包含為您的 Web 界面管理的路由。
路徑結構非常簡單。 打開相應的文件 (`web.php
` o `api.php
` ) 並開始代碼行 `Route:: `
,後跟要分配給該特定路由的請求,然後指定將在請求後執行的功能。
Laravel 提供以下路徑方法:
get
post
put
delete
patch
options
路徑是 defi在 Laravel 中,Route 類中包含 HTTP、要回复的路由和關閉或控制器。
讓我們看看如何在 Laravel 中創建自己的路徑。
現在我要創建一個基本路徑來打印 2 的乘法表。
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
在上面的代碼中,我為 URL 創建了一個 GET 請求路徑 /table
, 這將在屏幕上打印 2 的乘法表。
現在讓我們看一下相同的代碼,參數化我們想要乘法表的數字:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
在代碼中 'number
' 大括號之間表示參數,即要計算乘法表的數字。 每當指定類型的 URL 時 /table/n
, 則打印數表 n
.
還有一種方法可以將這兩種功能組合到一個路徑中。 Laravel 提供了可選參數功能,允許您使用問號“?”添加可選參數在可選參數和預值之後defi晚上。 讓我們看一下例子:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
在上面的代碼中,我們創建了路由參數,使數字成為可選的,所以如果用戶路由 `/table
` 那麼它會默認生成2的表defi晚上,如果用戶路由到`/table/{number}
然後是數表 'number'
將被生產。
在前面的例子中我們創建了生成九九乘法表的路徑,但是如何保證路徑的參數是一個數字,避免生成九九乘法表時出錯呢?
在 Laravel 中,你可以 defi使用 ` 方法完成對路由參數的約束where
` 在路由實例上。 `where
` 採用參數名稱和該參數的正則表達式。
現在讓我們看一下 ` 參數的約束示例{numero}
` 以確保只有一個數字傳遞給函數。
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
在上面的代碼中,我們對路徑號使用了正則表達式。 現在,如果用戶嘗試路由到 /表/沒有 將被顯示 NotFoundHttpException 異常。
在 Laravel 中,你可以 defi完成路徑的控制器方法。 控制器方法執行所有操作 defi每次用戶訪問該路線時都會發生。
使用以下代碼,我們正在分配控制器方法 'functionname'
到路線:
Route:: get ( '/home' , 'YourController@functionname' ) ;
代碼以 `Route::`
因此 defi完成路徑的請求方法。 隨後, defi通過在方法名稱前添加 @ 符號來完成路徑和控制器以及方法。
在 Laravel 中,你可以 defi為你的路徑命名。 這個名字通常非常有用。 例如,如果您想將用戶從一個位置重定向到另一個位置,則不必 defi完成完整的重定向 URL。 你只要報出他的名字就可以了。 你可以 defi使用 ` 方法完成路由名稱name
` 在路由實例中。
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
})->where('number', '[0-9]+')->name(‘table’);
現在,我可以通過以下代碼重新生成此路徑的 url:
$url = route('table');
同樣,對於重定向到此 URL,正確的語法是:
return redirect()->route('table');
Route Groups
I Route Groups
,字面意思是路徑組,是 Laravel 中的一個基本功能,它允許您對路徑進行分組。 當您想要將屬性應用於所有分組路徑時,路徑組很有用。 如果您使用路徑組,則不必將屬性單獨應用於每個路徑; 這避免了重複。 它允許您共享屬性,例如 middleware
o namespaces
,森薩 defi在每個單獨的路徑上完成這些屬性。 這些共享屬性可以以數組格式作為第一個參數傳遞給方法 Route::group
.
路由組的語法
Route::group([], callback);
鴿子 [ ]: 是作為第一個參數傳遞給組方法的數組。
示例 Route Group
在 網頁.php
Route::group([], function()
{
Route::get('/first' , function()
{
echo "first way route" ;
});
Route::get('/second' , function()
{
echo "second way route" ;
});
Route::get('/third' , function()
{
echo "third way route" ;
});
});
在代碼中, defi讓我們找到方法 團體(),其中包含兩個參數,即 array
e closure
. 在 - 的里面 closure
, 我們可以 defi完成多少個 route
我們想要。 在上面的代碼中,我們有 defi完成三 route
.
如果我們通過瀏覽器訪問 URL localhost/myproject/first
然後第一個介入 route
在瀏覽器中輸入 first way route
.
隨著網址 localhost/myproject/second
然後是第二個 route
在瀏覽器中輸入 second way route
.
使用 URL localhost/myproject/third
然後是第三個 route
在瀏覽器中輸入 third way route
.
Route Groups
的前綴 route
當我們想要提供多個通用的 URL 結構時使用它們 route
.
我們可以為所有路徑指定前綴 defi組內使用前綴數組選項 Route Groups
.
示例 web.php
Route::group(['prefix' => 'movie'], function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
該代碼包含可從以下 URL 訪問的三個路徑:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
我們還可以將中間件分配給組內的所有路由。 中間件必須是 defi在創建組之前完成。 要了解如何執行此操作,請閱讀我們的文章 Laravel 中間件是如何工作的.
Esempio:
Route::middleware(['age'])->group( function()
{
Route::get('/godfather',function()
{
echo "Godfather casting";
});
Route::get('/pulpfiction',function()
{
echo "Pulp Fiction casting";
});
Route::get('/forrestgump',function()
{
echo "Forrest Gump casting";
});
});
方法 name
用於為每個名稱添加前綴 route
帶有指定的字符串。 在方法中 name
,我們需要在前綴中指定帶有尾隨字符的字符串。
例子 web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Casaleggio Associati 發布了義大利電子商務年度報告。題為「人工智慧商務:人工智慧電子商務的前沿」的報告...