2015-11-12 95 views
0

Laravel 5.1:我在BladeServiceProvider(下例)中定義了一些自定義指令。現在我想在視圖模板之外使用它們來格式化字符串(我正在使用PHPExcel在自定義的ExportService類中編寫一個EXCEL文件)。是否可以重用我的指令?在模板之外使用Blade指令

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

回答

0

BladeCompilercompileString方法,它允許您使用的意見外刀片指令。 :)

所以,你可以做這樣的事情:

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

HM,似乎compileString返回從自定義方法創建一個PHP函數。 : - / – herrjeh42