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

Laravel视图Undefined variable $ikus报错求助

Laravel视图中$ikus变量未定义问题排查方案

错误信息

ErrorException
Undefined variable $ikus (View: D:\XAMPP\htdocs\SKP-PA-BKT\resources\views\iku.blade.php)
Laravel提示:$ikus is undefined

相关代码片段

iku.blade.php

@extends('layouts.sidebar')

@section('content')

<section class="main-panel">
    <div class="container">
        <div class="section-title">
        </div>
        <div class="row">
            <div class="col-md-12">
                <div class="table-wrap">
                    <table class="table table-responsive-xl">
                        <thead>
                            <tr>
                                <th>No </th>
                                <th>Opsi</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr class="alert">
                                @foreach ($ikus as $iku)
                                <td>{{ $iku->id }}</td>
                                @endforeach
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</section>
@endsection

IkuController.php

<?php

namespace App\Http\Controllers

use App\Models\Iku;
use Illuminate\Http\Request;

class IkuController extends Controller
{
    public function getIku()
    {
        $ikus = Iku::all();
        //dd($ikus);
        return view('iku', compact('ikus'));
    }
}

web.php

<?php

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\IkuController;

Auth::routes();
Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/indikator-kinerja', [IkuController::class, 'getIku'])->name('iku');

排查方向

  • 确认路由访问方式:必须通过/indikator-kinerja路径或route('iku')命名路由访问页面,不能直接打开视图文件。直接访问视图会跳过控制器逻辑,变量自然无法传递。
  • 修复控制器命名空间语法错误:IkuController中namespace App\Http\Controllers末尾缺少分号;,这会导致控制器无法被正确加载,路由无法触发对应方法。修正为:
    namespace App\Http\Controllers;
    
  • 检查视图文件有效性:确认resources/views/iku.blade.php存在,文件名无拼写错误(包括大小写、.blade.php后缀),Laravel视图名称区分大小写,需和view('iku')中的名称完全匹配。
  • 清除视图缓存:Laravel会缓存编译后的视图,修改后缓存未更新可能导致变量不生效。执行命令清除缓存:
    php artisan view:clear
    
  • 排查中间件拦截:如果路由绑定了中间件,检查中间件是否有提前返回的逻辑,导致控制器方法未执行。可临时注释路由上的中间件测试。
  • 验证控制器方法是否执行:取消控制器中dd($ikus)的注释,访问路由后查看是否有数据输出。若dd未执行,说明控制器方法未被调用;若有输出,说明变量已存在,可能是视图渲染环节的问题。
  • 检查布局文件冲突:视图继承了layouts.sidebar,检查该布局文件是否存在同名变量$ikus,或布局中的错误导致子视图变量无法正常传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:15:33