You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.6 Blade自定义指令失效问题求助

解决Laravel 5.6中Blade指令@hello不生效的问题

嘿,我之前也踩过这个Blade指令的坑!你遇到的问题核心在于Blade指令的返回值格式不对——Laravel要求Blade指令必须返回可执行的PHP代码片段,而不是直接返回字符串。

你现在的写法是直接返回"Hello, World!",Blade编译视图的时候根本不会把它当成要输出的内容处理,自然就原样显示@hello了。

正确的写法

把你的指令改成返回PHP输出代码:

Blade::directive('hello', function () {
    // 返回带echo的PHP代码块
    return "<?php echo 'Hello, World!'; ?>";
});

如果需要对内容进行HTML转义(避免XSS风险,是个好习惯),可以用Laravel的e()辅助函数:

Blade::directive('hello', function () {
    return "<?php echo e('Hello, World!'); ?>";
});

后续必做步骤

修改完指令后,别忘记再次清除视图缓存:

php artisan view:clear

如果还是不行,可以手动删除storage/framework/views目录下的所有编译文件,彻底清掉旧缓存。

另外再检查一下:你的服务提供者有没有在config/app.php的providers数组里正确注册?如果没注册的话,指令根本不会被加载哦。

内容的提问来源于stack exchange,提问作者Gonçalo Marrafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:13:22