JSON

基本使用、生成Cookie、返回视图、JSON/JSONP、文件下载及重定(2)

字号+ 作者:H5之家 来源:H5之家 2016-07-26 12:00 我要评论( )

如果返回的是JSONP响应,也很简单,只需要在json后面再调用setCallback即可: Route::get('testResponseJson',function(){return response()-json(['name'='LaravelAcademy','passwd'='LaravelAcademy.org'])-setCa

如果返回的是JSONP响应,也很简单,只需要在json后面再调用setCallback即可:

Route::get('testResponseJson',function(){ return response()->json(['name'=>'LaravelAcademy','passwd'=>'LaravelAcademy.org']) ->setCallback(request()->input('callback')); }); 2.3文件下载

使用download方法可生成用于下载给定路径文件的响应,这里我们下载上传的文件:

Route::get('testResponseDownload',function(){ return response()->download( realpath(base_path('public/images')).'/laravel-5-1.jpg', 'Laravel学院.jpg' ); });

在浏览器中访问:8000/testResponseDownload,页面将会下载laravel-5-1.jpg文件并保存为Laravel学院.jpg。

3、 RedirectResponse篇

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

3.1 基本重定向 Route::get('dashboard',function(){ returnredirect('home/dashboard'); });

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

Route::post('user/profile',function(){ //验证请求... returnback()->withInput(); }); 3.2重定向到命名路由

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

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

在浏览器中访问:8000/testResponseRedirect,页面会跳转到: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); });

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

Hello LaravelAcademy 100 3.3 重定向到控制器动作

使用action方法重定向到控制器动作:

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

在浏览器中访问:8000/testResponseRedirect,则页面会跳转到: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(){ //更新用户属性... returnredirect('dashboard')->with('status','Profileupdated!'); });

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

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详

    在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详

    2015-11-16 19:28

  • Laravel学院

    Laravel学院

    2015-10-28 13:45

  • Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】

    Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】

    2015-10-10 16:49

  • 优质Laravel中文学习资源平台

    优质Laravel中文学习资源平台

    2015-10-10 11:13

网友点评
h