重定向(Redirections)
命名路由用于为路由指定特定名称。 可以使用as数组键分配名称。
Route::get('user/profile', ['as' => 'profile', function () {
//
}]);
Note - 在这里,我们为路由user/profile指定了名称profile user/profile 。
重定向到命名路由
例子 (Example)
请注意以下示例以了解有关重定向到命名路由的更多信息 -
Step 1 - 创建一个名为test.php的视图并将其保存在
resources/views/test.php 。
<html>
<body>
<h1>Example of Redirecting to Named Routes</h1>
</body>
</html>
Step 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');
});
Step 3 - 访问以下URL以测试命名路由示例。
http://localhost:8000/redirect
Step 4 - 执行上述URL后,当我们重定向到指定的路由testing ,您将被重定向到http:// localhost:8000/test。
Step 5 - 成功执行URL后,您将收到以下输出 -
重定向到控制器操作
不仅命名路由,我们还可以重定向到控制器操作。 我们需要简单地将控制器和操作名称传递给action方法,如以下示例所示。 如果要传递参数,可以将其作为action方法的第二个参数传递。
return redirect()->action(‘NameOfController@methodName’,[parameters]);
例子 (Example)
Step 1 - 执行以下命令以创建名为RedirectController的控制器。
php artisan make:controller RedirectController --plain
Step 2 - 成功执行后,您将收到以下输出 -
Step 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.";
}
}
Step 4 - 在app/Http/routes.php添加以下行。
app/Http/routes.php
Route::get('rr','RedirectController@index');
Route::get('/redirectcontroller',function(){
return redirect()->action('RedirectController@index');
});
Step 5 - 访问以下URL以测试该示例。
http://localhost:8000/redirectcontroller
Step 6 - 输出将如下图所示。