有时项目中可能会出现连接两个以上mysql数据库的情况,那么在laravel框架中我们应该怎么做了:
1.在配置文件database.php
文件中新增一组 mysql 配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'mysql_main' => [
'driver' => 'mysql',
'host' => env('DB_MAIN_HOST', 'localhost'),
'database' => env('DB_MAIN_DATABASE', 'forge'),
'username' => env('DB_MAIN_USERNAME', 'forge'),
'password' => env('DB_MAIN_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
2.在 .env
文件中添加配置添加配置信息:
DB_CONNECTION=mysql
DB_HOST=192.168.1.31
DB_DATABASE=test1
DB_USERNAME=root
DB_PASSWORD=root
DB_MAIN_CONNECTION=mysql
DB_MAIN_HOST=localhost
DB_MAIN_DATABASE=test2
DB_MAIN_USERNAME=root
DB_MAIN_PASSWORD=root
3.在 model 文件中新声明一个属性:
namespace App\Http\Model;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $connection = 'mysql_main';
}
至此,我们就可以在需要的地方使用Model操作对应的数据库了。