Laravel页面无限加载无法显示MySQL数据库表该如何解决?
问题修复步骤
1. 修复数据库配置端口错误(超时的核心原因)
你当前config/database.php中MySQL端口填写的是8080,但从你提供的XAMPP面板截图可以看到,8080是Apache的服务端口,MySQL默认运行端口为3306。端口配置错误会导致Laravel持续尝试连接数据库无法成功,最终触发PHP执行超时错误。
修改config/database.php里的mysql连接配置:
// 将原有配置里的'port' => '8080'替换为下面的内容 'port' => '3306',
修改完成后执行php artisan config:clear清除配置缓存,避免旧配置依然生效。
2. 修复视图中表名字段读取错误
DB::select('SHOW TABLES')查询返回的集合中,每个对象的属性名为Tables_in_<你的数据库名>,也就是这里对应的是Tables_in_listenonce,不是你代码里写的group_name,直接读取不存在的属性会后续会抛出错误。
你可以修改路由代码提前处理返回值,降低视图层的适配成本:
Route::get('/listen', function () { $tables = DB::select('SHOW TABLES'); // 处理为仅包含表名的数组 $groups = array_map(function($table) { return current((array)$table); }, $tables); return view('listen', ['groups' => $groups]); });
对应修改视图的循环输出代码即可:
@foreach($groups as $group) <div> {{ $group }} </div> @endforeach
可选验证步骤
如果修改后仍有异常,可以先在路由中直接输出验证结果,快速定位问题:
Route::get('/listen', function () { try { DB::connection()->getPdo(); $groups = DB::select('SHOW TABLES'); dd($groups); } catch (\Exception $e) { die("数据库连接失败: " . $e->getMessage()); } });
访问/listen如果能正常输出表列表,说明数据库连接正常,再调整视图代码即可。
内容的提问来源于stack exchange,提问作者BlackdestinyXX
相关产品推荐
相关产品推荐

