Laravel响应和视图

基础响应     //直接响应字符串     Route::get('example/test20', function(){         return 'hello world';     });     //定制HTTP响应     Route::get('example/test21', function(){         return Response::make('内容不存在', 404);     });     //响应视图     Route::get('example/test22', function(){         return Response::view('test22');     });     //给响应添加cookie     Route::get('example/test23', function(){         return Response::view('test22')->withCookie(Cookie::make('key', 'this is value')); 响应重定向     //响应重定向     Route::get('example/test24', function(){         return Redirect::to('example/test21')->with('username', 'xiaoming');     });     //带上数据的重定向     Route::get('example/test25', function(){         //with 方法将数据写到了Session中,经过Session::get 方法便可获取该数据。         return Redirect::to('example/test21')->with('username', 'xiaoming');     });     //重定向至命名路由     return Redirect::route('login');     //重定向值带有命名参数的命名路由     return Redirect::route('profile', array('user' => 1));     //重定向至指定的控制器方法     return Redirect::action('HomeController@index');     //重定向至指定的控制器方法,并可带上参数     return Redirect::action('UserController@profile', array('user' => 1)); 响应视图     //响应视图并传递参数     Route::get('example/test30', function(){         //第一种方式         return View::make('test30', array('name' => 'xiaoming'));         //第二种方式         //return View::make('test30')->with('name', 'xiaoming2');         //第三种方式         //return View::make('test30')->withName('xiaoming3');         //第四种方式,注:在全部视图中共享同一数据         //View::share('name', 'Steve');     });     //在视图中传入子视图     Route::get('example/test31', function(){         $data = array('name' => 'john');         //子视图放在app/views/child/child_view.php, 你也能够向其传递变量         return View::make('test30')->with($data)->nest('child', 'child.child_view', $data);     }); 视图组件或视图合成器 若是你但愿视图被建立时,就绑上指定数据,能够定义视图组件:     View::composer('profile', function($view)     {         $view->with('count', User::count());     }); 给视图组件添加多视图:     View::composer(array('profile','dashboard'), function($view)     {         $view->with('count', User::count());     }); 若是你使用基于类的视图组件:     View::composer('profile', 'ProfileComposer'); 视图组件类这样建立:     class ProfileComposer {         public function compose($view)         {             $view->with('count', User::count());         }     } 特殊响应     //建立JSON响应     return Response::json(array('name' => 'Steve', 'state' => 'CA'));     //建立JSONP响应     return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));     //文件下载响应     return Response::download($pathToFile);     return Response::download($pathToFile, $name, $headers);     注意:管理文件下载的类库Symfony HttpFoundation要求文件名是ASCII编码的。 响应宏,使用Response::macro自定义响应     Response::macro('caps', function($value)     {         return Response::make(strtoupper($value));     }); macro 方法接受两个参数,一个指定宏名称和一个闭包。当经过 Response 类调用该名称的宏时,闭包就会被执行:     return Response::caps('foo'); 你能够在 app/start 目录里的文件中定义宏。或者,你也能够经过一个单独的文件组织你的宏,并将该文件包含至某个 start 文件中。 转载于http://www.phpddt.com/php/laravel-response.html
相关文章
相关标签/搜索