Laravel5 中新增了一个函数 redirect() 来代替 Laravel4 中 Redirect::to() 来进行重定向操作。函数 redirect() 可以将用户重定向到不同的页面或动作,同时可以选择是否带数据进行重定向。

重定向响应是Illuminate\Http\RedirectResponse类的实例,其中包含了必须的头信息将用户重定向到另一个URL。辅助函数redirect返回的就是RedirectResponse类的实例。

示例路由:

Route::get('testRedirect', 'UserController@testRedirect');

示例动作:

public function testRedirect()
{
// 以下示例代码为此处实现
}

简单的重定向

假设我们当前的域名为:http://localhost

return redirect('home');

重定向到 http://localhost/home

return redirect('auth/login');

重定向到 http://localhost/auth/login

return redirect('');

重定向到 http://localhost,注意此处传入的是一个空字符串,而不是什么都不传,上文已说 redirect() 返回Illuminate\Http\RedirectResponse类实例。

链接方法的重定向

return redirect()->back();

重定向到上一个 URL,需要注意死循环的问题。辅助函数back返回前一个 URL (使用该方法之前确保路由使用了web中间件组或者都使用了session中间件)。还有另外一种方式:

return back()->withInput();

重定向到命名路由

// get('login', ['as' => 'userLogin', 'uses'=>'loginController@index']);
return redirect()->route('userLogin');

重定向到命名为 userLogin 的路由。这种方式的使用更为灵活,因为我们将来要修改 URL 结构,只需要修改 routes.php 中路由的配置就行了。

// For a route with the following URI: profile/{id}
return redirect()->route('profile', [1]);

如果路由中有参数,可以将其作为第二个参数传递到route方法。

return redirect()->route('profile', [$user]);

如果要重定向到带 ID 参数的路由(Eloquent 模型绑定),可以传递模型本身,ID 会被自动解析出来。

重定向到控制器动作

return redirect()->action('HomeController@index');

只需简单传递控制器和动作名到action方法即可。记住,你不需要指定控制器的完整命名空间,因为 Laravel 的RouteServiceProvider将会自动设置默认的控制器命名空间。

return redirect()->action('UserController@profile', [1]);

如果控制器路由要求参数,你可以将参数作为第二个参数传递给action方法。

带数据的重定向

重定向到一个新的 URL 并将数据存储到一次性 Session 中通常是同时完成的。

return redirect('dashboard')->with('status', 'Profile updated!');

此代码会将数据添加到Flash会话闪存数据中,然后你可以在结果 Controller 或视图中使用该数据:

@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif

用户重定向到新页面之后,你可以从 Session 中取出显示这些一次性信息。

Reminder: Session Flash Data
Laravel has a concept of Session Flash data for only one request – after the next is loaded, that Session element/value is deleted, and can’t be retrieved again. This is exactly what is happening in with() method – its purpose is to add an error message or some input data only for that particular redirect and only for one page. It does the same thing as a function Session::flash(‘error’, ‘Something went wrong.’).

Laravel 只有一个请求会话Flash数据概念,在下一个请求被加载后,会话数据被删除,并且无法再次检索。

return redirect()->back()->withInput();

此方法没有参数,它的作用是将旧表单值保存到 Session 中。在新页面你可以使用old获取这些数据。

Laravel5:重定向 redirect 函数的详细使用的更多相关文章

  1. Flask:redirect()函数

    Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 重定向,就是在客户端提交请求后,本来是访问A页面,结果,后台给了B页面,当然,B页面中才有需要的信息. 在Flask中 ...

  2. CakePHP redirect函数

    public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...

  3. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  4. Django框架----render函数和redirect函数的区别

    render函数和redirect函数的区别: render:只会返回页面内容,但是未发送第二次请求 redirect:发挥了第二次请求,url更新 具体实例说明 render: redirect:

  5. .htaccess技巧: URL重写(Rewrite)与重定向(Redirect)

    URL重定向是.htaccess的重头戏,它可以将长地址转为短地址.将动态地址转为静态地址.重定向丢失的页面.防止盗链.实现自动语言转换等.笔者觉得难点是在正则表达式的运用和理解上. 实现所有这些神奇 ...

  6. qplot()函数的详细用法

    qplot()函数的详细用法: library(ggplot2) # 测试数据集,ggplot2内置的钻石数据qplot(carat, price, data = diamonds)dsmall &l ...

  7. .htaccess技巧: URL重写(Rewrite)与重定向(Redirect) (转)

    目录 Table of Contents 一.准备开始:mod_rewrite 二.利用.htaccess实现URL重写(rewrite)与URL重定向(redirect) 将.htm页面映射到.ph ...

  8. ICMP重定向 Redirect netwox libpcap netwag

    搭建环境 两台虚拟机. 攻击者:192.168.1.8 被攻击者:192.168.1.9 网络配置 主机均采用DHCP 如果没有路由器,可以使用NAT模式来做 攻击者配置 打开转发数据包功能 # su ...

  9. 请求转发(forward)和请求重定向(redirect)的区别(转)

    作者:@haimishasha本文为作者原创,转载请注明出处:https://www.cnblogs.com/haimishasha/p/5952129.html 用户向服务器发送了一次HTTP请求, ...

随机推荐

  1. Python相关机器学习‘武器库’

    开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...

  2. 吴恩达机器学习笔记 —— 7 Logistic回归

    http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...

  3. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  4. OkHttpHelper使用

    源码:https://gitee.com/xcode_xiao/OkHttpHelper 网络请求缓存的支持,OKHttp Retrofit (get,post,一切,文字,图片,语音,文件,自定义缓 ...

  5. springboot 常见请求方式

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80404645 本文出自[赵彦军的博客] 用户模型类 package com.yib ...

  6. (网页)html5 canvas清空画布方法(转)

    总结以下三种清空canvas画布的方式: 1. 最简单的方法:由于canvas每当高度或宽度被重设时,画布内容就会被清空,因此可以用以下方法清空: function clearCanvas() { v ...

  7. 使用nginx代理后以及配置https后,如何获取真实的ip地址

    使用nginx代理后以及配置https后,如何获取真实的ip地址 Date:2018-8-27 14:15:51 使用nginx, apache等反向代理后,如果想获取请求的真实ip,要在nginx中 ...

  8. 2019年Web前端最新导航(常见前端框架、前端大牛)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 前言 本文列出了很多与前端有关的常见网站.博客.工具等,整体来看比较权威.有些东西已经 ...

  9. Spark应用【根据新df更新旧df】

    // 主键字段保持不变,再转换回来 var columnMap:Map[String, String] = Map() for(key <- keysOpt){ columnMap += (ke ...

  10. WinServerDFS

    DFS提供共享路径统一命名,且文件相互备份,具有高可用性. 1.在相应的服务器上安装服务. --命名空间,复制以及管理控制台的安装 install-windowsfeature fs-dfs-name ...