這幾天在使用Laravel 開發一個系統。這個系統連2個資料庫。一個名為blog,一個名為center。
center 資料庫的作用是作為使用者中心。可能會有其他幾個系統相連,屬於公用資料庫。主要是用來使用者登入認證。
blog 資料庫的作用是放文章,不會牽扯到認證方面。
我的想法是使用center資料庫作為使用者的登入認證,登入以後在發文章切換到blog資料庫。
目前我的.env配置如下
DB_HOST=localhostDB_DATABASE=blogDB_DATABASE_CENTER=centerDB_USERNAME=rootDB_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.phpapp\Http\Controllers\Auth\PasswordController.php
希望大家能幫忙解答一下,謝謝!
回複內容:
這幾天在使用Laravel 開發一個系統。這個系統連2個資料庫。一個名為blog,一個名為center。
center 資料庫的作用是作為使用者中心。可能會有其他幾個系統相連,屬於公用資料庫。主要是用來使用者登入認證。
blog 資料庫的作用是放文章,不會牽扯到認證方面。
我的想法是使用center資料庫作為使用者的登入認證,登入以後在發文章切換到blog資料庫。
目前我的.env配置如下
DB_HOST=localhostDB_DATABASE=blogDB_DATABASE_CENTER=centerDB_USERNAME=rootDB_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.phpapp\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', ''),只留下 '' /* 我瞭解決這個問題,作為一個新手,我耗費了累計時間 兩天 */