Laravel 8连接MySQL失败,用户注册API返回500内部服务器错误
问题分析与解决
错误根源
报错Database connection [moneyway] not configured的核心原因:你的Client模型指定使用名为moneyway的数据库连接,但config/database.php中仅配置了默认的mysql连接,没有名为moneyway的连接项。
解决方法
方法一:修正模型的连接配置
直接将Client.php中的连接名称改为Laravel已配置好的mysql:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Client extends Model { protected $connection = 'mysql'; // 将moneyway改为mysql protected $table = 'users'; }
方法二:新增moneyway连接配置
如果确实需要单独的moneyway连接,在config/database.php的connections数组中添加该配置:
'connections' => [ // 保留原有mysql配置 'mysql' => [ // ... 你的现有配置内容 ], // 新增moneyway连接 'moneyway' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'moneyway'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, ], ],
额外注意事项
- 清除配置缓存:修改配置后执行以下命令,确保新配置生效:
php artisan config:clear php artisan cache:clear
- 密码加密存储:当前代码直接明文存储密码存在安全风险,建议使用加密处理:
$new_client->password= Hash::make($request->{"password"}); // 需在文件顶部引入Hash类:use Illuminate\Support\Facades\Hash;
- 跨域处理:确保Laravel配置了CORS规则,避免前端请求被拦截,可借助
barryvdh/laravel-cors扩展实现。
内容的提问来源于stack exchange,提问作者Kotomon
相关产品推荐
相关产品推荐

