在模板之外使用Blade指令

时间:2015-11-12 09:09:06

标签: laravel laravel-5 blade laravel-blade

Laravel 5.1:我在BladeServiceProvider中定义了一些自定义指令(下面的示例)。现在我想在视图模板之外使用它们来格式化字符串(我在自定义的ExportService类中用PHPExcel编写EXCEL文件)。可以重用我的指令吗?

 Blade::directive('appFormatDate', function($expression) {
        return "<?php
         if (!is_null($expression)) {
           echo date(\Config::get('custom.dateformat'), strtotime($expression));
         }
         else {
           echo '-';
         }
         ?>";
    });

1 个答案:

答案 0 :(得分:2)

BladeCompilercompileString方法,允许您在视图外使用Blade指令。 :)

所以,你可以这样做:

$timestamp = '2015-11-10 17:41:53';
$result = Blade::compileString('@appFormatDate($timestamp)');