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://127.0.0.1:8000/redirect

步骤 4 − 执行上述URL后,您将被重定向到 https://127.0.0.1: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://127.0.0.1:8000/redirectcontroller

步骤 6 − 输出将如下图所示。

RedirectController.jpg
广告