laravel 重定向

RedirectResponse篇
重定向响应是 Illuminate\Http\RedirectResponse类的实例,我们通常使用全局帮助函数redirect来生成 RedirectResponse实例。和response类似,redirect函数如果接收参数则调用的是Illuminate\Routing\Redirector类的to方法,如果无参调用则返回的是Redirector对象实例。

3.1 基本重定向

Route::get('dashboard', function () {
    return redirect('home/dashboard');
});

如果要重定向到上一个位置,则使用back方法:

Route::post('user/profile', function () {
    // 验证请求...
    return back()->withInput();
});

3.2 重定向到命名路由
使用route方法重定向到命名路由:

Route::get('/hello/laravelacademy',['as'=>'academy',function(){
    return 'Hello LaravelAcademy';
}]);
Route::get('testResponseRedirect',function(){
    return redirect()->route('academy');
});

在浏览器中访问http://laravel.app:8000/testResponseRedirect,页面会跳转到http://laravel.app:8000/hello/laravelacademy并输出:

Hello LaravelAcademy
如果命名路由中有参数,那么我们可以在route中传入参数:

Route::get('/hello/laravelacademy/{id}',['as'=>'academy',function($id){
    return 'Hello LaravelAcademy '.$id;
}]);

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

在浏览器中访问http://laravel.app:8000/testResponseRedirect,页面会跳转到http://laravel.app:8000/hello/laravelacademy/100并输出:

Hello LaravelAcademy 100
3.3 重定向到控制器动作
使用action方法重定向到控制器动作:

Route::resource('post','PostController');

Route::get('testResponseRedirect',function(){
    return redirect()->action('PostController@index');
});

在浏览器中访问http://laravel.app:8000/testResponseRedirect,则页面会跳转到http://laravel.app:8000/post并输出对应内容。

当然也可以传递参数到action方法:

Route::get('testResponseRedirect',function(){
    return redirect()->action('PostController@show',[1]);
});

3.4 带一次性Session数据的重定向
使用with方法可以携带一次性session数据到重定向请求页面(一次性session数据即使用后立即销毁的session数据项):

Route::post('user/profile', function () {
    // 更新用户属性...
    return redirect('dashboard')->with('status', 'Profile updated!');
});

这种特性通常在提交表单验证失败返回错误信息时很有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值