Laravel 8 擴展 Blade

2021-07-17 16:52 更新

Blade 允許您使用 directive 方法來自定義指令。當 Blade 編譯器遇到自定義指令時,將會調(diào)用其包含的表達式提供的回調(diào)。

下方的例子創(chuàng)建了一個 @datetime($var) 指令,其用于格式化指定的 DateTime 實例 $var

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * 注冊應(yīng)用服務(wù)。
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * 驅(qū)動應(yīng)用服務(wù)。
     *
     * @return void
     */
    public function boot()
    {
        Blade::directive('datetime', function ($expression) {
            return "<?php echo ($expression)->format('m/d/Y H:i'); ?>";
        });
    }
}

如您所見,我們將在任何被傳遞給該指令的表達式中鏈式調(diào)用 format 方法。因此,在這個例子中,最終該指令生成的 PHP 代碼如下:

<?php echo ($var)->format('m/d/Y H:i'); ?>

注意:在更新了 Blade 指令的邏輯后,您需要刪除所有的 Blade 視圖緩存。您可以通過 view:clear Artisan 命令來實現(xiàn)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號