Laravel blade 包含部分的自定义指令
Laravel blade custom directive with include partial
我有一个自定义 Blade 指令,我试图从中包含一个带有 Blade 语法 @include()
的部分指令。问题是我有一个自定义视图命名空间:
\Blade::directive('name', function() {
$viewsNamespace = 'viewsNameSpace::';
$formPartial = $viewsNamespace . 'partials._form';
return "{{ @include({$formPartial}) }}";
});
这样输出错误,
Class 'viewsNameSpace' not found
因为它将 viewsNameSpace::
解释为 class。
这只输出字符串而不解析它:
return "@include('{$formPartial}')";
这不会引发任何错误,但不会加载部分内容:
return "{{ @include('{$formPartial}') }}";
请注意,当我在这样的模板中使用 in 时,部分功能正在运行:
@include('viewsNameSpace::partials._form')
但我无法通过指令使其工作。
如有任何帮助和建议,我们将不胜感激!谢谢!
我是这样工作的:
return "<?php echo view('$formPartial')->render(); ?>";
其中 $formPartial
是 'viewsNameSpace::partials._form'
。
试试这个:
return "<?php echo view('viewsNameSpace::partials._form')->render(); ?>"
;
如果有人在 16 年的 post 之后遇到这个问题,Laravel 现在有一个 blade 助手来创建自定义 include
指令(自版本 5.6.5 起):
Blade::include('viewsNameSpace::path.to.view.file');
这将添加到您的应用服务提供商的 boot()
方法中。更多示例 here.
我有一个自定义 Blade 指令,我试图从中包含一个带有 Blade 语法 @include()
的部分指令。问题是我有一个自定义视图命名空间:
\Blade::directive('name', function() {
$viewsNamespace = 'viewsNameSpace::';
$formPartial = $viewsNamespace . 'partials._form';
return "{{ @include({$formPartial}) }}";
});
这样输出错误,
Class 'viewsNameSpace' not found
因为它将 viewsNameSpace::
解释为 class。
这只输出字符串而不解析它:
return "@include('{$formPartial}')";
这不会引发任何错误,但不会加载部分内容:
return "{{ @include('{$formPartial}') }}";
请注意,当我在这样的模板中使用 in 时,部分功能正在运行:
@include('viewsNameSpace::partials._form')
但我无法通过指令使其工作。
如有任何帮助和建议,我们将不胜感激!谢谢!
我是这样工作的:
return "<?php echo view('$formPartial')->render(); ?>";
其中 $formPartial
是 'viewsNameSpace::partials._form'
。
试试这个:
return "<?php echo view('viewsNameSpace::partials._form')->render(); ?>"
;
如果有人在 16 年的 post 之后遇到这个问题,Laravel 现在有一个 blade 助手来创建自定义 include
指令(自版本 5.6.5 起):
Blade::include('viewsNameSpace::path.to.view.file');
这将添加到您的应用服务提供商的 boot()
方法中。更多示例 here.