Laravel 使用多个数据库的问题。
2016-12-25 21:31
696 查看
这几天在使用Laravel 开发一个系统。这个系统连2个数据库。一个名为blog,一个名为center。
center 数据库的作用是作为用户中心。可能会有其他几个系统相连,属于公用数据库。主要是用来用户登录认证。
blog 数据库的作用是放文章,不会牵扯到认证方面。
我的想法是使用center数据库作为用户的登录认证,登录以后在发文章切换到blog数据库。
目前我的
database.php 里设计如下
我自己建立的model
但是系统自带的例子Controller 要怎么切换数据库呢?
希望大家能帮忙解答一下,谢谢!
2015年06月23日提问
评论
邀请回答
编辑
更多
已采纳
看看文档: http://laravel.com/docs/master/authentication
AuthController 默认是使用 “App\User” Eloquent model, 同样的, 你在App\User里指定某一个数据库就是了
2015年06月23日回答
1
评论
编辑
ylem22 声望
0
补充一下 laravel 5 自带的 Auth 案例里实现的登录注册和密码找回两个部分。
对于注册登录部分 可以使用
对于密码找回,需要在
例如:
2015年06月24日回答
评论
编辑
Me110117 声望
0
3月21日回答 · 3月21日更新
评论
编辑
clarkwayne1 声望
0
在控制器里这样写
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
希望大家能帮忙解答一下,谢谢!
2015年06月23日提问
评论
邀请回答
编辑
更多
4个回答
0已采纳
看看文档: http://laravel.com/docs/master/authentication
AuthController 默认是使用 “App\User” Eloquent model, 同样的, 你在App\User里指定某一个数据库就是了
2015年06月23日回答
1
评论
编辑
ylem22 声望
0
补充一下 laravel 5 自带的 Auth 案例里实现的登录注册和密码找回两个部分。
对于注册登录部分 可以使用
ylem的方法。
对于密码找回,需要在
/config/auth.php里面进行设置。
例如:
'table' => 'mydatabases.password_resets',
2015年06月24日回答
评论
编辑
Me110117 声望
0
'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', ''),只留下 '' /* 我了解决这个问题,作为一个新手,我耗费了累计时间 两天 */
3月21日回答 · 3月21日更新
评论
编辑
clarkwayne1 声望
0
在控制器里这样写
$results = DB::connection('mysql')->select('...'); $results = DB::connection('mysql_center')->select('...');
相关文章推荐
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- 数据中心使用dtu远程连接oracel 9i数据库问题
- [原创]谈谈vb中使用数据库的一点小问题
- 如何在Ruby On Rails中使用Unicode(解决数据库中文化的问题)
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- SQL SERVER的备份恢复问题,数据库正在使用……
- 问题集锦03:使用sqlcmd连接数据库出错
- 初次使用WebPartManange出现数据库连接出错的问题
- 使用Visual Basic访问数据库几个注意的问题
- [网络问题,截图以后再传]本实验是设计性实验。目的在于使用关系数据库标准语言SQL,掌握视图和索引的操作。
- (原创)使用TimeStamp控制并发问题[示例]-创建后台数据库脚本
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- SQL Server 数据库突然不能使用解决问题回顾
- 初次使用WebPartManange出现数据库连接出错的问题
- 解决使用ASP无法连接 ORACLE 9i 数据库的问题。
- 解决使用ASP无法连接 ORACLE 9i 数据库的问题。
- Hibernate使用property-ref属性解决遗留数据库One To Many关系的问题。
- 使用WebPart和登陆控件的数据库设置问题!
- 关于C#中用access做数据库,使用like语句的问题
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)