Laravel 9 出现Undefined variable $users错误,请求技术支持
Laravel 9 解决 Undefined variable $users 错误
问题根源
访问admin/dashboard页面时,dashboard.blade.php通过@include引入usercrud.blade.php,但加载dashboard视图的AdminController@adminDashboard方法未传递$users变量——UserController@index里的变量传递仅在直接访问/users路由时生效,这就是usercrud视图找不到$users的核心原因。
解决方法一(推荐:规范MVC写法)
修改App\Http\Controllers\AdminController的adminDashboard方法,在控制器中完成数据查询并传递给视图:
<?php namespace App\Http\Controllers; use App\Models\User; class AdminController extends Controller { public function adminDashboard() { // 和UserController保持一致的查询逻辑 $users = User::orderBy('id')->paginate(10); // 将变量传递给dashboard视图 return view('admin.dashboard', compact('users')); } }
@include引入的子视图会自动继承父视图的变量,修改后usercrud.blade.php就能正常调用$users。
解决方法二(临时快速方案)
若不想修改控制器,可在dashboard.blade.php的@include语句中直接传递变量(不推荐在视图中写业务逻辑,仅作临时测试):
@include('includes.users.usercrud', ['users' => \App\Models\User::orderBy('id')->paginate(10)])
额外验证步骤
- 清理视图缓存,避免旧缓存干扰:
php artisan view:clear
- 确认
web.php中admin/dashboard路由确实指向AdminController@adminDashboard,当前路由配置无误。
内容的提问来源于stack exchange,提问作者Get Excited
相关产品推荐
相关产品推荐

