Laravel5:重定向 redirect 函数的详细使用
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 函数的详细使用的更多相关文章
- Flask:redirect()函数
		
Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 重定向,就是在客户端提交请求后,本来是访问A页面,结果,后台给了B页面,当然,B页面中才有需要的信息. 在Flask中 ...
 - CakePHP redirect函数
		
public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...
 - render函数和redirect函数的区别+反向解析
		
render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象) request对象:----->所有的请求 ...
 - Django框架----render函数和redirect函数的区别
		
render函数和redirect函数的区别: render:只会返回页面内容,但是未发送第二次请求 redirect:发挥了第二次请求,url更新 具体实例说明 render: redirect:
 - .htaccess技巧: URL重写(Rewrite)与重定向(Redirect)
		
URL重定向是.htaccess的重头戏,它可以将长地址转为短地址.将动态地址转为静态地址.重定向丢失的页面.防止盗链.实现自动语言转换等.笔者觉得难点是在正则表达式的运用和理解上. 实现所有这些神奇 ...
 - qplot()函数的详细用法
		
qplot()函数的详细用法: library(ggplot2) # 测试数据集,ggplot2内置的钻石数据qplot(carat, price, data = diamonds)dsmall &l ...
 - .htaccess技巧: URL重写(Rewrite)与重定向(Redirect) (转)
		
目录 Table of Contents 一.准备开始:mod_rewrite 二.利用.htaccess实现URL重写(rewrite)与URL重定向(redirect) 将.htm页面映射到.ph ...
 - ICMP重定向 Redirect netwox libpcap netwag
		
搭建环境 两台虚拟机. 攻击者:192.168.1.8 被攻击者:192.168.1.9 网络配置 主机均采用DHCP 如果没有路由器,可以使用NAT模式来做 攻击者配置 打开转发数据包功能 # su ...
 - 请求转发(forward)和请求重定向(redirect)的区别(转)
		
作者:@haimishasha本文为作者原创,转载请注明出处:https://www.cnblogs.com/haimishasha/p/5952129.html 用户向服务器发送了一次HTTP请求, ...
 
随机推荐
- css优先级计算规则——权重
			
一.css的优先级 当对同一个元素设置相同的多个声明时,会按照优先级的高低选择应用哪种声明. <style> #id{ color:red; } p{ color:blue; } < ...
 - Django之URL路由系统
			
一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...
 - Spring AOP原理(续)
			
十二.AOP 1. 说出Spring的通知类型有哪些? spring共提供了五种类型的通知: 通知类型 接口 描述 Around 环绕通知 org.aopalliance.intercept.Meth ...
 - CSS回顾(基础知识,元素,选择器,盒子,颜色)
			
元素分类: 1.行级元素:内联元素 inline 特征:内容决定元素所占位置,不可以通过CSS改变宽高 span strong em a del 2.块级元素:block特征:独占一行,可 ...
 - Servlet以及单例设计模式
			
1.Servlet概述 a)Servlet,全城是Servlet Applet,服务器端小程序,是一个接口,定义了若干方法,要求所有的Servlet必须实现. b)Servlet用于接收客户端的请求, ...
 - L2-024. 部落
			
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同 ...
 - spring  applicationContext.xml最全约束
			
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
 - SqlServer跨集群升级
			
SqlServer跨集群升级 1.新Server的IP要和旧的在同一网段. 2.安装SQL SERVER(注意:排序要和以前的一样,更改TempDB位置) 3.开启防火墙,并打开1433和5022端口 ...
 - ini (ini-parser)配置文件解析 for donet
			
介绍 此ini解析库适用于mono(unity3d),donet,大小在30kb左右. 开源免费:https://github.com/rickyah/ini-parser 使用示例 engine_c ...
 - 对Can We MakeOperating SystemsReliable and Secure 的翻译
			
摘要:微内核-相对于大内核(monolithic kernels)来说,由于它的 lower performance,长期以来被认为是不可接受的.而现在,由于它潜 在的高可靠性(higher reli ...