这几天在使用Laravel 开发一个系统。这个系统连2个数据库。一个名为blog,一个名为center。
center 数据库的作用是作为用户中心。可能会有其他几个系统相连,属于公用数据库。主要是用来用户登录认证。
blog 数据库的作用是放文章,不会牵扯到认证方面。
我的想法是使用center数据库作为用户的登录认证,登录以后在发文章切换到blog数据库。
目前我的.env配置如下
DB_HOST=localhost DB_DATABASE=blog DB_DATABASE_CENTER=center DB_USERNAME=root DB_PASSWORD=root
database.php 里设计如下
'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_center' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE_CENTER', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],我自己建立的model User.php 是可以通过下面这种方式切换数据库的。
class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
protected $connection = 'mysql_center';但是系统自带的例子Controller 要怎么切换数据库呢?
app\Http\Controllers\Auth\AuthController.php app\Http\Controllers\Auth\PasswordController.php
希望大家能帮忙解答一下,谢谢!
这几天在使用Laravel 开发一个系统。这个系统连2个数据库。一个名为blog,一个名为center。
center 数据库的作用是作为用户中心。可能会有其他几个系统相连,属于公用数据库。主要是用来用户登录认证。
blog 数据库的作用是放文章,不会牵扯到认证方面。
我的想法是使用center数据库作为用户的登录认证,登录以后在发文章切换到blog数据库。
目前我的.env配置如下
DB_HOST=localhost DB_DATABASE=blog DB_DATABASE_CENTER=center DB_USERNAME=root DB_PASSWORD=root
database.php 里设计如下
'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_center' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE_CENTER', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],我自己建立的model User.php 是可以通过下面这种方式切换数据库的。
class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
protected $connection = 'mysql_center';但是系统自带的例子Controller 要怎么切换数据库呢?
app\Http\Controllers\Auth\AuthController.php app\Http\Controllers\Auth\PasswordController.php
希望大家能帮忙解答一下,谢谢!
AuthController 默认是使用 “App\User” Eloquent model, 同样的, 你在App\User里指定某一个数据库就是了
补充一下 laravel 5 自带的 Auth 案例里实现的登录注册和密码找回两个部分。
对于注册登录部分 可以使用ylem的方法。
对于密码找回,需要在/config/auth.php里面进行设置。
例如:
'table' => 'mydatabases.password_resets',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE_CENTER', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
==================写法错误……去掉env , env('DB_DATABASE_CENTER', 'forge')只留下'forge',
env('DB_PASSWORD', ''),只留下 ''
/* 我了解决这个问题,作为一个新手,我耗费了累计时间 两天 */
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号