[英]Laravel Blade compileString gives me a Blank Page
我試圖在我的 AppServiceProvider 中創建一個新的刀片指令:
<?php
public function boot()
{
Blade::directive('test', function () {
return Blade::compileString('@if(1==1) test @endif');
});
}
然后在我看來調用這個指令:
@test()
但它不起作用,給了我一個空白頁。
我嘗試了幾件事,但最后我通過將 BladeCompiler.php 中的刀片指令代碼復制並粘貼到我的自定義指令而不是使用 compileString 來解決此問題
你會得到一個空白頁面,因為Blade::compileString
是有狀態單例對象的外觀。 該對象不希望您調用它。
作為一種解決方法,您可以創建一個新的編譯器實例並使用它:
Blade::directive('endtabs', function ($exp) {
$content1 = sprintf("@include('%s', ['tabs' => \$tabs])", 'backend/tabs/test');
$compiler = new BladeCompiler(app('files'), app('config')['view.compiled']);
return $compiler->compileString($content1);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.