重定向至命名路由
命名路由用於給出具體的名字命名到一個路由。名稱可以使用“作為”數組鍵來被分配。
Route::get('user/profile', ['as' => 'profile', function () {
//
}]);
注 - 在這裏,我們命名為“profile”到路由“user/profile”。
示例
第1步 - 創建一個名為 test.php 的視圖,並將其保存在resources/views/test.php。
<html>
<body>
<h2>Example of Redirecting to Named Routes</h2>
</body>
</html>
第2步 - 在 routes.php 檔中,我們已經創建了 test.php 檔的路由,把它重新命名為 “testing”。我們還建立了一個路由 “redirect”,這將請求重定向到指定路由“testing”。
app/Http/routes.php
Route::get('/test', ['as'=>'testing',function(){
return view('test');
}]);
Route::get('redirect',function(){
return redirect()->route('testing');
});
第3步 - 訪問以下網址測試命名的路由例子。
http://localhost:8000/redirect
第4步 - 上面的URL執行後,因為我們重定向到 http://localhost:8000/test 同時你會被重定向到命名路由 "testing"。
重定向到控制器動作
不僅命名的路由,但我們也可以重定向到控制器動作。我們只需要簡單將控制器和動作名稱傳遞給動作方法,如下面的例子所示。如果想傳遞一個參數,那可以把它作為操作方法的第二個參數傳遞。
return redirect()->action(‘NameOfController@methodName’,[parameters]);
示例
第1步- 執行以下命令來創建一個名為 RedirectController。
php artisan make:controller RedirectController
第2步 - 成功執行後,您會收到以下輸出 -


第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('reindex','RedirectController@index');
Route::get('/redirectcontroller',function(){
return redirect()->action('RedirectController@index');
});
第5步 - 請訪問以下網址進行測試例子。
http://localhost:8000/redirectcontroller
第6步 - 輸出結果如下圖所示。


上一篇:
Laravel視圖
下一篇:
Laravel運算元據庫

