Laravel - 重定向



命名路由用於為路由賦予特定名稱。可以使用“as”陣列鍵分配名稱。

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

注意 − 在這裡,我們將名稱profile賦予路由user/profile

重定向到命名路由

示例

觀察以下示例以瞭解更多關於重定向到命名路由的資訊:

步驟 1 − 建立一個名為 test.php 的檢視,並將其儲存到

resources/views/test.php.

<html>
   <body>
      <h1>Example of Redirecting to Named Routes</h1>
   </body>
</html>

步驟 2 − 在routes.php中,我們設定了test.php檔案的路由。我們將其重新命名為testing。我們還設定了另一個路由redirect,它將請求重定向到命名路由testing

app/Http/routes.php

Route::get('/test', ['as'=>'testing',function() {
   return view('test2');
}]);

Route::get('redirect',function() {
   return redirect()->route('testing');
});

步驟 3 − 訪問以下URL以測試命名路由示例。

https://:8000/redirect

步驟 4 − 執行上述URL後,您將被重定向到 https://:8000/test,因為我們正在重定向到命名路由testing

步驟 5 − URL成功執行後,您將收到以下輸出:

Virat Gandhi

重定向到控制器操作

不僅可以重定向到命名路由,還可以重定向到控制器操作。我們只需將控制器和action的名稱傳遞給action方法,如下例所示。如果要傳遞引數,可以將其作為action方法的第二個引數傳遞。

return redirect()->action(‘NameOfController@methodName’,[parameters]);

示例

步驟 1 − 執行以下命令以建立一個名為RedirectController的控制器。

php artisan make:controller RedirectController --plain

步驟 2 − 成功執行後,您將收到以下輸出:

Redirect Controller

步驟 3 − 將以下程式碼複製到檔案

app/Http/Controllers/RedirectController.php.

app/Http/Controllers/RedirectController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class RedirectController extends Controller {
   public function index() {
      echo "Redirecting to controller's action.";
   }
}

步驟 4 − 在app/Http/routes.php中新增以下幾行。

app/Http/routes.php

Route::get('rr','RedirectController@index');
Route::get('/redirectcontroller',function() {
   return redirect()->action('RedirectController@index');
});

步驟 5 − 訪問以下URL以測試該示例。

https://:8000/redirectcontroller

步驟 6 − 輸出將如下圖所示。

RedirectController.jpg
廣告