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

Laravel Blade模板间传递变量报错:$price未被识别

排查Blade子模板中$price变量未识别的问题

嘿,我来帮你分析这个变量无法被识别的问题,结合你提供的代码片段,大概率是这几个常见原因导致的:

1. 变量名拼写/大小写错误

Blade模板中的变量是大小写敏感的,你需要仔细核对:

  • 父模板中传递的变量名是price:@include('pages.partials.plans_mobile', ['price' => '$30/mo.'])
  • 子模板中调用的变量名是$price:{{$price}}

如果其中任何一处拼写有误(比如父模板写成Price,子模板还是$price),就会导致变量无法识别。

2. Blade视图缓存问题

Laravel会自动编译并缓存Blade模板,如果你之前的子模板没有$price变量,后来添加了但没清理缓存,系统可能还在使用旧的编译文件。

解决办法是运行Artisan命令清除视图缓存:

php artisan view:clear

3. 子模板变量被覆盖

检查子模板pages.partials.plans_mobile.blade.php中,有没有在使用{{$price}}之前,通过其他方式重新定义了$price变量?比如:

@php
    $price = '其他值'; // 这里会覆盖父模板传递过来的变量
@endphp

如果存在这种情况,父模板传递的变量会被覆盖,导致显示错误。

4. 模板路径错误

确认你引入的子模板路径完全正确:

  • 确保项目中存在resources/views/pages/partials/plans_mobile.blade.php文件
  • 路径中的大小写、拼写(比如pages vs Pages,partials vs Partial)都要完全匹配

如果路径错误,Laravel可能加载了其他模板(或者抛出找不到模板的错误),但如果加载了一个没有$price变量的模板,也会出现这个报错。

快速排查步骤

  1. 先运行php artisan view:clear清理缓存,再刷新页面测试
  2. 逐行核对父模板传参和子模板调用的变量名拼写
  3. 检查子模板中是否有覆盖$price的代码
  4. 确认子模板的文件路径和名称完全正确

内容的提问来源于stack exchange,提问作者Aaron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:17:52