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

Laravel 9中$services变量未定义错误的排查与解决请求

问题解决步骤

1. 修复控制器变量传递错误

你已经在控制器中查询出$services集合,但返回视图时错误地传递了home变量,导致视图无法获取$services。修改控制器代码:

public function index()
{
    $services = Services::all();

    // 将$services传递给dashboard视图
    return view('dashboard', compact('services'));
}

也可以用数组方式传递变量,效果一致:

return view('dashboard', ['services' => $services]);

2. 修复Blade模板的循环变量错误

Blade循环中已经将集合的每一项赋值给$service,但你错误地使用$services(整个集合)去访问单个模型的属性,同时$product->id属于无效变量,需替换为$service->id:

@foreach($services as $service)
    <!--Cards-->
    <div class="row d-flex justify-content-evenly my-5" data-aos="fade-up" data-aos-duration="1000">
        <!--Card 1-->
        <div class="card my-3" style="width: 18rem;">
            <img src="{{ $service->image }}" class="card-img-top" alt="Service Image">
            <div class="card-body">
                <h5 class="card-title">{{ $service->name }}</h5>
                <p class="card-text">{{ $service->description }}</p>
                <div class="d-flex justify-content-evenly ">
                    <button type="button" class="btn btn-outline-primary fw-bold">AVAIL</button>
                    <button type="button" class="btn btn-primary">
                        <i class="fa-sharp fa-solid fa-cart-shopping"></i>
                        <a href="{{ route('add.to.cart', $service->id) }}"> Add to Cart</a>
                    </button>
                </div>
            </div>
        </div>
@endforeach

额外调整:

  • 给src属性添加引号,符合HTML语法规范
  • 修正了i标签与a标签的嵌套顺序,避免结构错误

3. 可选检查项

  • 确认控制器顶部已引入Services模型:use App\Models\Services;
  • 视图路径建议去掉斜杠,Laravel规范写法为view('dashboard')(对应resources/views/dashboard.blade.php)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:45:31