2015-06-21 104 views
6

我正在使用Laravel 5.1。我試圖用我自定義的Blade指令使用Blade指令(@extend)。在Blade指令中使用Blade指令

Blade::directive('base', function() use ($theme) { 
    return "@extends($theme)" 
}); 

然而,上面的代碼只從字面上顯示的內容(@extends($theme)

+0

你試過'return「@extends(」。$ theme。「)」;' – aethergy

+0

不行。它僅輸出整個事件 – srph

+1

不幸的是,刀片模板不會對編譯視圖執行第二次分析。這使得你正在做的事情非常難以完成,而無需手動調用刀片編譯器來運行第二次解析。 –

回答

3

相反的評論我早些時候發表的,我想這使用刀片編譯器是​​可能的(但未經測試)。

Blade::directive('base', function() use ($theme) { 
    return Blade::compileString("@extends({$theme})"); 
}); 
+0

這似乎不適用於@yield指令。有沒有人得到這個工作? –

+0

正如你試圖在指令中編譯yield? –

+0

我的代碼中有一個無關的錯誤。道歉。 –