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
相關文章
相關標籤/搜索