Laravel Blade模板报Undefined variable $nilais错误排查
问题根源
报错核心原因是路由配置没有调用你写好的控制器方法:当前/main路径的路由直接通过闭包返回视图,MainController里查询$nilais数据、向模板传参的逻辑完全没有执行,模板自然拿不到$nilais变量。
修复步骤
- 修改路由配置,把原来的闭包路由替换为指向控制器方法的路由:
首先在路由文件(一般是routes/web.php)头部引入控制器:
use App\Http\Controllers\MainController;
然后把原有路由替换为:
Route::get('/main', [MainController::class, 'index']);
- 清除路由缓存,避免旧配置生效,在项目根目录执行命令:
php artisan route:clear
额外校验项(如果修改后仍报错可逐一检查)
- 检查
MainController的代码语法,你贴的代码末尾多写了一个右大括号},类定义只需要一个闭合大括号,多余的括号会导致语法错误 - 确认
MainController头部已经正确引入Nilai模型,引入代码为use App\Models\Nilai;,否则控制器里的Nilai::get()会报类找不到错误 - 确认
main.blade.php文件确实存放在resources/views目录下,和控制器中view('main')的路径匹配 - 如果开启了视图缓存,可以执行
php artisan view:clear清除视图缓存重试
内容的提问来源于stack exchange,提问作者xodh
相关产品推荐
相关产品推荐

