《PHP應(yīng)用:跟我學(xué)Laravel之視圖 & Response》要點:
本文介紹了PHP應(yīng)用:跟我學(xué)Laravel之視圖 & Response,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP應(yīng)用基本Response
PHP應(yīng)用從路由中返回字符串
PHP應(yīng)用創(chuàng)建自定義Response
PHP應(yīng)用Response類繼承自Symfony\Component\HttpFoundation\Response類,提供了多種辦法用于構(gòu)建HTTP Response.
PHP應(yīng)用$response->header('Content-Type', $value);
PHP應(yīng)用return $response;
PHP應(yīng)用如果需要拜訪 Response 類的方法,但又要返回一個視圖作為響應(yīng)的內(nèi)容,通過使用 Response::view 方法可以很容易實現(xiàn):
PHP應(yīng)用在Response中添加Cookie
PHP應(yīng)用return Response::make($content)->withCookie($cookie);
PHP應(yīng)用重定向
PHP應(yīng)用返回一個重定向
PHP應(yīng)用return Redirect::to('user/login');
返回一個帶有數(shù)據(jù)的重定向
PHP應(yīng)用return Redirect::to('user/login')->with('message', 'Login Failed');
注意: with 辦法將數(shù)據(jù)寫到了Session中,通過Session::get 辦法即可獲取該數(shù)據(jù).
返回一個重定向至命名路由
PHP應(yīng)用return Redirect::route('login');
返回一個重定向至帶有參數(shù)的命名路由
PHP應(yīng)用return Redirect::route('profile', array(1));
返回一個重定向至帶有命名參數(shù)的命名路由
PHP應(yīng)用return Redirect::route('profile', array('user' => 1));
返回一個重定向至控制器Action
PHP應(yīng)用return Redirect::action('HomeController@index');
返回一個重定向至控制器Action并帶有參數(shù)
PHP應(yīng)用return Redirect::action('UserController@profile', array(1));
返回一個重定向至控制器Action并帶有命名參數(shù)
PHP應(yīng)用return Redirect::action('UserController@profile', array('user' => 1));
PHP應(yīng)用視圖
PHP應(yīng)用視圖通常包括應(yīng)用中的HTML代碼,為分離表現(xiàn)層與控制器和業(yè)務(wù)邏輯提供了便利.視圖存放于app/views目錄.
PHP應(yīng)用一個簡單視圖案例:
PHP應(yīng)用<html>
??? <body>
??????? <h1>Hello, <?php echo $name; ?></h1>
??? </body>
</html>
PHP應(yīng)用通過如下辦法來返回該視圖到瀏覽器:
PHP應(yīng)用傳遞給View::make辦法的第二個參數(shù)是一個數(shù)組,它將被傳遞給視圖.
PHP應(yīng)用傳遞數(shù)據(jù)給視圖
PHP應(yīng)用// Using Magic Methods
$view = View::make('greeting')->withName('steve');
PHP應(yīng)用在上面的案例中,$name變量在視圖內(nèi)是可以拜訪的,其值為Steve.
PHP應(yīng)用你還可以在所有視圖同共享同一數(shù)據(jù):
PHP應(yīng)用View::share('name', 'Steve');
PHP應(yīng)用向視圖傳遞子視圖
PHP應(yīng)用或許你可能想將一個視圖放入到另一個視圖中.例如,將存放在app/views/child/view.php文件中的子視圖傳遞給另一視圖,如下:
PHP應(yīng)用$view = View::make('greeting')->nest('child', 'child.view', $data);
PHP應(yīng)用在父視圖就可以輸出該子視圖了:
PHP應(yīng)用視圖合成器
PHP應(yīng)用視圖合成器可以是回調(diào)函數(shù)或者類辦法,它們在創(chuàng)建視圖時被調(diào)用.如果你想在應(yīng)用程序中,每次創(chuàng)建視圖時都為其綁定一些數(shù)據(jù),使用視圖合成器可以將代碼組織到一個地方.因此,視圖合成器就好像是 “視圖模型”或者是“主持人”.
PHP應(yīng)用定義一個視圖合成器
PHP應(yīng)用現(xiàn)在,每次創(chuàng)建profile視圖時,count都會被綁定到視圖中.
PHP應(yīng)用你也可以為多個視圖同時綁定一個視圖合成器:
PHP應(yīng)用如果你更喜歡使用基于類的視圖合成器,IoC container可以提供更多便利,如下所示:
PHP應(yīng)用View::composer('profile', 'ProfileComposer');
PHP應(yīng)用視圖合成器類定義如下:
PHP應(yīng)用??? public function compose($view)
??? {
??????? $view->with('count', User::count());
??? }
PHP應(yīng)用}
PHP應(yīng)用注意,沒有規(guī)定視圖合成器類存放在哪里.因此,你可以任意存放,只要能在composer.json文件中指定位置并自動加載即可.
PHP應(yīng)用視圖創(chuàng)建器
PHP應(yīng)用視圖 創(chuàng)建器 與視圖合成器的工作方式幾乎完全相同;區(qū)別在于當一個視圖被實例化后就會立即觸發(fā)視圖創(chuàng)建器.視圖創(chuàng)建器通過 creator 辦法方便地定義:
PHP應(yīng)用特殊Response
PHP應(yīng)用創(chuàng)建一個JSON Response
PHP應(yīng)用return Response::json(array('name' => 'Steve', 'state' => 'CA'));
創(chuàng)建一個JSONP Response
PHP應(yīng)用return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));
創(chuàng)建一個文件下載Response
PHP應(yīng)用return Response::download($pathToFile);
PHP應(yīng)用return Response::download($pathToFile, $status, $headers);
注意: Symfony HttpFoundation 用于處理文件下載,要求下載的文件的文件名只包括 ASCII 字符.
PHP應(yīng)用Response 宏
PHP應(yīng)用如果希望自定義一個 response ,以便在你應(yīng)用程序中的許多路由和控制器中進行重用,可以使用 Response::macro 辦法:
PHP應(yīng)用macro 辦法接受兩個參數(shù),一個指定和名稱和一個閉包.當通過 Response 類調(diào)用該名稱的宏時,閉包就會被執(zhí)行:
PHP應(yīng)用return Response::caps('foo');
你可以在 app/start 目錄里的文件中定義宏.或者,你也可以通過一個單獨的文件組織你的宏,并將該文件包括至某個 start 文件中.
歡迎參與《PHP應(yīng)用:跟我學(xué)Laravel之視圖 & Response》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14541.html