Laravel中@include引入的局部文件{{ }}语法失效求助
解决Laravel Blade模板@include文件中{{ }}语法不解析的问题
我刚碰到过完全一样的坑!问题根源其实很简单——你引入的局部文件扩展名不对。
你现在的导航文件是include/nav.php,但Laravel只有遇到.blade.php后缀的文件时,才会自动编译解析Blade模板语法(比如{{ }}、@include这些)。普通的.php文件会被当作纯PHP代码直接输出,所以{{ route('inventory') }}就原封不动显示在浏览器里了。
具体修复步骤:
- 把
include/nav.php重命名为includes/nav.blade.php(注意两个点:一是扩展名要改成.blade.php,二是文件夹名要和你@include('includes.nav')里的includes对应上,别写成include) - 你的
@include('includes.nav')调用不需要修改,Laravel会自动去匹配resources/views/includes/nav.blade.php这个文件
为什么overview.blade.php里的语法能正常生效?因为这个文件本身就是.blade.php后缀,Laravel会对它进行完整的Blade编译处理,自然能解析{{ }}。
修改完之后刷新页面,{{ route('inventory') }}应该就会被正确替换成对应的路由URL啦!
内容的提问来源于stack exchange,提问作者delmonte
相关产品推荐
相关产品推荐

