laravel3學習筆記(八)

來源:互聯網
上載者:User

標籤:style   http   使用   檔案   io   art   

原作者部落格:ieqi.net

====================================================================================================

Web開發框最大的存在意義無疑是為開發人員提供便利,這種被提供的便利不僅表現在對於整個應用介面上的梳理、組織和解耦,也表現在更多細微方便,比如各種工具的提供。Laravel3為開發人員提供了各種有關web開發的工具,讓開發人員在開發應用時只需要關注於自身的業務,而不必在拘泥在其他外延的糾纏。

 

跳轉

跳轉在Web應用中經常被用到,Laravel3提供豐富的實現跳轉的方法:

跳轉到特定uri:

return Redirect::to(‘user/profile‘);

附帶特定的狀態代碼如301/302進行跳轉:

return Redirect::to(‘user/profile‘, 301);

發起https跳轉:

return Redirect::to_secure(‘user/profile‘);

返回應用根目錄:

return Redirect::home();

返回上一個動作uri的跳轉:

return Redirect::back();

跳轉到一個命名路由:

return Redirect::to_route(‘profile‘);

跳轉到某一個controller類中的方法:

return Redirect::to_action(‘[email protected]‘);

附帶參數可以這樣:

return Redirect::to_route(‘profile‘, array($username));return Redirect::to_action(‘[email protected]‘, array($username));

附帶flash訊息的跳轉:

return Redirect::to(‘profile‘)->with(‘status‘, ‘Welcome Back!‘);

可以這樣讀取msg內容:

$status = Session::get(‘status‘);
錯誤響應返回

404錯誤返回:

return Response::error(‘404‘);

500錯誤返回:

return Response::error(‘500‘);
類庫的調用

對於經常使用的類庫可以將類庫檔案放到application/libraries檔案夾下,laravel用自動載入這些類庫,不必再手動顯式載入調用,簡化了開發。比如我們建立一個application/libraries/printer.php類庫檔案,其內容為:

class Printer {    public static function write($text) {        echo $text;    }}

然後就可以在其他地方通過Printer::write()來調用類庫中的方法了。

檔案下載

返回一個檔案下載響應:

return Response::download(‘file/path.jpg‘);

可以對檔案進行重新命名:

return Response::download(‘file/path.jpg‘, ‘photo.jpg‘);
資源管理

Laravel3在管理css和js資源檔方面提供了一些協助,(個人感覺用處不大,如果不能很好的和backbone這樣的前端架構整合,這個功能意義真的不大)。

添加資源:

Asset::add(‘jquery‘, ‘js/jquery.js‘);

第一個參數是資源名,第二個參數是資源檔相對於public檔案夾的位置。

我們知道不管是css還是js在前端載入的時候都需要有一定的順序,這就牽扯到了依賴,所以在添加資源的時候不能不考資源依賴的問題。

在添加資源的時候我們可以這樣處理:

// jquery-ui 資源依賴 jqueryAsset::add(‘jquery-ui‘, ‘js/jquery-ui.js‘, ‘jquery‘);

這樣,Laravel3 就會協助我們自動處理好資源依賴問題了。

當某個資源依賴多個其他資源時,只需要將其他資源作為數組當做第三個參數傳入:

// third 資源同時一來first資源與second資源Asset::add(‘third‘, ‘js/third.js‘, array(‘first‘, ‘second‘));

然後在模板中調用Asset::styles()和 Asset::scripts()方法可以調用出已經添加的資源,即產生相應的html代碼在view中渲染:

如下:

echo Asset::styles();echo Asset::scripts();

在blade模板中可以直接使用

{{Asset::styles();}}{{Asset::scripts();}}
資源容器

往往我們需要粒度更細的資源管理,比如我們希望一部分js在網頁底部載入以提高網頁整體的載入速度。這時候我們可以使用資源容器來協助我們再組織資源,以方便部分調用。

建立一個資源容器並且向其中添加資源:

// 建立容器名為footerAsset::container(‘footer‘)->add(‘example‘, ‘js/example.js‘);

這樣調用:

echo Asset::container(‘footer‘)->scripts();

如果是在Blade模板之中可以這樣:

{{Asset::container(‘footer‘)->scripts();}}

對於bundle的資源,Laravel3也為我們提供了方案,只需將資源容器與bundle綁定:

Asset::container(‘foo‘)->bundle(‘admin‘);

然後我們再往此容器中添加資源的時候,Laravel3將會自動為我們指向bundle所在public目錄,我們只需要填寫資源的相對路徑。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.