Abh*_* PS 30 php laravel laravel-4
在Laravel 4中,我想将用户重定向回请求所在的页面.例如,用户尝试更新其个人资料,以便编辑个人资料并点击"保存".在控制器中我做更新,通常我会这样做Redirect::to('profile')->with('message','Profile saved!')
.但我想要的是简单地将其重定向回信息.可能是这样的Redirect::back()->with('message','Operation Successful !')
话.我想要它,因为它更通用,我可以在任何地方使用它.
Ant*_*iro 75
是的,这是可用的:
return Redirect::back()->with('message','Operation Successful !');
Run Code Online (Sandbox Code Playgroud)
但由于这是重定向的请求,您必须使用以下命令来访问该消息:
echo Session::get('message');
Run Code Online (Sandbox Code Playgroud)
Eri*_*bar 19
你当然可以使用
Redirect::back()->withMessage('Profile saved!')
代替
Redirect::to('profile')->withMessage('Profile saved!')
*Laravel中的漂亮功能,它解析你的camelCase,->with('name', 'value')
所以它的->withName('value')
工作原理是一样的.
我假设您的表单已绑定到模型,例如Form::model($user, [...]
预填表单字段,但如果不是,您可能需要重新刷新重定向上的输入(或者如果您的验证失败并且您希望用户能够纠正无效信息).
// [[... validation and other magic here]]
if ($validator->fails()) {
return Redirect::back()
->withMessage($message_fail)
->withErrors($validator)
->withInput();
}
return Redirect::back()
->withMessage($message_success)
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
Twitter:@ErikOnTheWeb
你应该考虑不要使用Redirect::back()
.是的,它很诱人,似乎正是你所需要的.但:
该back()
方法使用请求标头的"referer"属性.因此,用户代理(通常是浏览器)告诉服务器(和Laravel)他来自的URL.(正如维基百科所说:referer是引用者的拼写错误)但并非每个用户代理/浏览器都会提供此信息!我使用Opera,我不允许它一般传输引用!所以back()
对我不起作用.(是的,我可以允许这个网站,但我很懒.抱歉,我不相信你的网站.)