91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel框架中怎么自定義模板指令

發布時間:2021-07-19 14:40:59 來源:億速云 閱讀:123 作者:Leah 欄目:開發技術

Laravel框架中怎么自定義模板指令,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

自定義一個簡單的模板指令

$expression參數是可選的

\Blade::directive('directive_name', function ($expression) {
 return $expression;
});

視圖中用法Demo

<p>@hello('World')</p>

聲明自定義模板指令的位置AppServiceProvider.php

<?php
namespace App\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
 /**
  * Perform post-registration booting of services.
  *
  * @return void
  */
 public function boot()
 {
  Blade::directive('hello', function ($expression) {
   return "<?php echo 'Hello ' . {$expression}; ?>";
  });
 }
 /**
  * Register bindings in the container.
  *
  * @return void
  */
 public function register()
 {
  //
 }
}

以這種方式定義的指令加載成功,可以在任何模板中使用

注意事項

第一點

不能直接訪問自定義指令中傳遞的多個參數,需要將其遍歷出來

<p>@greet('Hi', 'Hammad')</p>
\Blade::directive('hello', function ($expression) {
 list($greet, $name) = explode(', ', $expression);

 return "<?php echo {$greet} . ' ' . {$name}; ?>";
});

像 array() list() 這種并不是一個函數,而是一種語言結構

第二點

一定要時刻記住需要過濾輸出,一般使用{{}}時候,Blade已經預先執行了過濾操作,為了避免惡意用戶將js代碼注入到站點,一定要轉義HTML,可以使用Laravel自帶的函數e(),也相當于htmlentities()

\Blade::directive('hello', function ($expression) {
 return "<?php echo 'Hello ' . e({$expression}); ?>";
});

第三點

每次添加或修改自定義模板指令之后,一定要先清除緩存視圖模板,可以使用clear Artisan

php artisan view:clear

Laravel5.5新特性

在使用自定義的模板指令的時候,大多數只是某種形式的條件,這些要求我們需要注冊三個獨立指令,if/else/endif,目前Laravel5.5已經支持簡化條件指令,例如下面的實例,模板可以使用admin/else/endadmin

public function boot()
{
 \Blade::if('admin', function () {
  return auth()->check() && auth()->user()->isAdmin();
 });
}

看完上述內容,你們掌握Laravel框架中怎么自定義模板指令的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

务川| 道孚县| 泰和县| 蒙城县| 垫江县| 剑阁县| 岑巩县| 瑞昌市| 泰和县| 崇礼县| 千阳县| 苍溪县| 平乡县| 两当县| 广昌县| 大渡口区| 合山市| 上高县| 万源市| 汤原县| 理塘县| 三原县| 黄大仙区| 浙江省| 惠安县| 龙南县| 平远县| 邹平县| 茌平县| 喀喇沁旗| 凤阳县| 德安县| 苏尼特左旗| 大冶市| 五原县| 汾阳市| 应用必备| 浪卡子县| 金寨县| 河北区| 阳山县|