问题:
在laravle框架中配置了多数据库连接,但是一直连接不上,报如下错误:
Database connection [{$name}] not configured。
问题原因:
查了好多资料,才发现原来laravel 框架会把配置文件缓存,目的是
为了给应用加速,使用 Artisan 命令 config:cache
将所有配置文件的配置缓存到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。
应用一旦上线,就要运行一次 php artisan config:cache
,但是在本地开发时,没必要经常运行该命令,因为配置值经常需要改变。
解决办法:
php artisan config:clear 可以清除配置文件。。。
配置变了,可以使用配置中的新配置了。
配置多数据库方法:
1.在.env 文件中添加数据库配置:
上面的是默认的配置,下面的是新添加的
2.在config/database.php文件中,
connections数组中添加第二个数据库配置
添加第二个数据库连接配置:
'mysql2' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_MAYI', ''),
'username' => env('DB_USERNAME_MAYI', ''),
'password' => env('DB_PASSWORD_MAYI', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => env('DB_PREFIX', ''),
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
3.创建model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class PartnerMayi extends Model
{
protected $connection = 'mysql2';
protected $table = 'partner';
protected $fillable = [
];
}
4.调用model数据
$info = PartnerMayi::where('id',1)->first();
打印数据,结果出来,连接成功