摘要:模板包含大量的內置指令,例如等等,內置的指令對于做一個簡單的項目足以,但是當你在代碼中編寫重復復雜的功能時,那么自定義模板指令或許可以幫你優化你的視圖結構。
介紹
通常我們在視圖模板中編寫復雜的邏輯,看上去顯得很雜亂,那么使用自定義的模板Directives,可以簡化你的視圖邏輯,編寫出更優雅的代碼,Laravel Blade是一種將其特殊語法編譯成PHP和HTML的模板引擎。其特殊語法指令,指令是加糖功能,在其后隱藏雜亂的代碼。模板包含大量的內置指令,例如@foreach/@if/@section/@extends等等,內置的指令對于做一個簡單的項目足以,但是當你在代碼中編寫重復復雜的功能時,那么自定義模板指令或許可以幫你優化你的視圖結構。
$expression參數是可選的
Blade::directive("directive_name", function ($expression) { return $expression; });
視圖中用法Demo
@hello("World")
聲明自定義模板指令的位置AppServiceProvider.php
"; }); } /** * Register bindings in the container. * * @return void */ public function register() { // } }
以這種方式定義的指令加載成功,可以在任何模板中使用
不能直接訪問自定義指令中傳遞的多個參數,需要將其遍歷出來
@greet("Hi", "Hammad")
Blade::directive("hello", function ($expression) { list($greet, $name) = explode(", ", $expression); return ""; });
像 array() list() 這種并不是一個函數,而是一種語言結構
第二點一定要時刻記住需要過濾輸出,一般使用{{}}時候,Blade已經預先執行了過濾操作,為了避免惡意用戶將js代碼注入到站點,一定要轉義HTML,可以使用Laravel自帶的函數e(),也相當于htmlentities()
Blade::directive("hello", function ($expression) { return ""; });第三點
每次添加或修改自定義模板指令之后,一定要先清除緩存視圖模板,可以使用clear Artisan
php artisan view:clear
在使用自定義的模板指令的時候,大多數只是某種形式的條件,這些要求我們需要注冊三個獨立指令,if/else/endif,目前Laravel5.5已經支持簡化條件指令,例如下面的實例,模板可以使用admin/else/endadmin
public function boot() { Blade::if("admin", function () { return auth()->check() && auth()->user()->isAdmin(); }); }結尾說明
2017 ending! script maker!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26206.html
摘要:允許你自定義命令,你可以使用方法注冊命令。當編譯器遇到該命令時,它將會帶參數調用提供的回調函數。 Blade 允許你自定義命令,你可以使用 directive 方法注冊命令。當 Blade 編譯器遇到該命令時,它將會帶參數調用提供的回調函數。blade模板可以通過directive方法來自定義模板指定, tojs指令主要用于PHP自定義一些數據轉換為js對象方便js調用 1.創建T...
摘要:接下來我將帶大家認識下五個指令,這些指令將讓你在解決特定問題時如虎添翼。如果你是剛接觸的用戶,這些小技巧能帶你認識到模板引擎的便捷與高效。 showImg(https://segmentfault.com/img/remote/1460000015076241); 接下來我將帶大家認識下五個 Laravel Blade 指令,這些指令將讓你在解決特定問題時如虎添翼。如果你是剛接觸 La...
摘要:上次提到過,模板引擎一般是要做三件事情變量值的輸出條件判斷和循環引入或繼承其他文件現在就來看看的模板引擎是如何來處理這三件事情的。引擎接下來就是本文的重點是如何編譯的。如果有興趣的話,也可以實現一個自己的模板解析引擎。 上次提到過,模板引擎一般是要做三件事情: 變量值的輸出(echo) 條件判斷和循環(if ... else、for、foreach、while) 引入或繼承其他文件 ...
摘要:只要數據發生改變,立即更新,由表單等帶來的數據改變,數據相應字段也會發生相應改變。三界面的更新的輸入,導致的值更新,元素內,任何表達式與有關的,都將重新計算,斌企鵝自動更新界面。作為組件化思維的先驅當年統計的組件多達多個。 Vue 是現在最火的前端JavaScript 開發框架。首先,接受它的思想 View 模板即html,靜態界面Model 數據源 模型 界面所有的數據負責提供及管理...
摘要:接下來執行遷移即可通用布局通用布局首先是博客首頁,定義路由控制器視圖博客首頁訪問下網站根目錄,顯示博客首頁,框架基本搭建完成了。首先是通用布局通用布局里面除了使用之外,還使用了,用于加載其他模板。 5. 博客的通用布局 初始化 創建控制器、模型、遷移 博客的核心是文章,可以先來實現和文章有關的功能,根據前幾節的介紹可知,我們至少需要創建這幾類: PostsController:控制器...
閱讀 3921·2021-11-17 09:33
閱讀 3283·2021-10-08 10:05
閱讀 3111·2021-09-22 15:36
閱讀 1140·2021-09-06 15:02
閱讀 2772·2019-08-29 12:45
閱讀 1590·2019-08-26 13:40
閱讀 3399·2019-08-26 13:37
閱讀 420·2019-08-26 13:37