我有两个 Laravel API,在本地开发机上为 AngularJS 应用提供服务。当 Angular 页面调用这两个 API 进行 POST 请求时,我遇到了一个奇怪的问题:它似乎使用了错误的数据库名称(它正在使用另一个 Laravel 实例的数据库)。Laravel 抛出一个异常,说找不到 表 database.table
,其中 database 是错误的数据库名称。我已经尝试使用 Postman 调用了每个 API,一切都正常工作,并且我确定在任何项目中都没有提到其他数据库。
对我来说,这似乎是一个缓存问题,可能是 .env 文件在两个 Laravel 服务器之间被缓存和共享的原因。这两个 Laravel 应用都托管在 Apache 上。我尝试调用 php artisan config:clear
,并设置了适当的头文件在 .htaccess 文件中,以尝试防止任何缓存,但这两者都没有起作用。我还尝试了多个浏览器,清除了缓存,但仍然出现相同的错误。
我希望能够使用 .env 文件,以便在开发服务器上拥有唯一的配置,所以我不想在 config/database.php
中硬编码数据库凭据。有什么想法可能是问题的原因吗?
两个 database.php 文件看起来像:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
存储唯一设置的位置在.env
中。
php artisan optimize
命令,该命令将清除配置、路由和文件缓存,并创建新的缓存。每次编辑路由或 .env 文件后都需要运行此命令。 - Hemant Prajapat