【发布时间】:2025-12-10 19:35:02
【问题描述】:
我在 Laravel 中有一些用于 Ziggyroutes 的自定义指令。在 Laravel 5.7 中它们工作得很好,现在我已经升级到 Laravel 5.8 并且它们停止工作了。如果我调用自定义指令,它们只会打印出纯文本。
我在一个干净的项目中尝试过它,它在那里工作。我已经用 view:clear、cache:clear 和 config:clear 清除了我的缓存
例如我有:
\Blade::directive('routes', function($group = null){
return "<?php echo app('" . BladeRouteGenerator::class . "')->generate({$group}); ?>";
});
在 Blade 中我这样称呼它:
@routes()
只给出纯文本的结果,说明@routes()。
所以我期望和应该发生的事情是将包含所有路线的列表粘贴到刀片上。
而现在发生的事情是它只是以纯文本@routes()打印出来。
那么这种行为可能是什么问题。从 Laravel 5.7 升级到 5.8,我错过了什么吗?
更新:显然包 htmlmin 破坏了整个东西 link to issue 所以在删除包后它再次工作。
【问题讨论】:
-
这对我有用。您是否将指令代码添加到您的
AppServiceProvider,如laravel.com/docs/5.8/blade#extending-blade 所示? -
@BramVerstraten 好吧,它位于一个单独的 ServiceProvider 中,它扩展了 ServiceProvider,然后加载到 app.php 中。我试图将它直接放在 AppServiceProvider 中,因为文档是这样说的。但是还是不行。
标签: php laravel laravel-blade laravel-5.7 laravel-5.8