基礎響應 //直接響應字符串 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