Database Laravel 5.0从默认数据库切换到其他数据库以在所有视图和控制器上使用
我在切换数据库时遇到了一个问题。 我在config.database文件中将数据库“a”设置为默认值;除此之外,我还有一个数据库“B”中的连接数组 当我登录并转到控制器中的POST登录方法时,我切换到数据库“B” 使用“用户”表并获取登录凭据Database Laravel 5.0从默认数据库切换到其他数据库以在所有视图和控制器上使用,database,laravel,connection,Database,Laravel,Connection,我在切换数据库时遇到了一个问题。 我在config.database文件中将数据库“a”设置为默认值;除此之外,我还有一个数据库“B”中的连接数组 当我登录并转到控制器中的POST登录方法时,我切换到数据库“B” 使用“用户”表并获取登录凭据 if(\Auth::attempt(array('username'=>$username , 'password'=>$password) ) )... 这很好用。但是,当我转到另一个blade.php时 我将从默认连接(“A”)上的“用
if(\Auth::attempt(array('username'=>$username , 'password'=>$password) ) )...
这很好用。但是,当我转到另一个blade.php时
我将从默认连接(“A”)上的“用户”表而不是B中的用户表中获取凭据
所以当我这么做的时候
echo Auth::user()->firstName()." - ".Auth::user()->id;
//it will display Carlos - 10 instead of displaying Luis - 10
所以我猜它是在查找id=10的行,但是在表A(dafault连接)上,而不是在表B(我使用Config::set()切换的连接)上
我还尝试在每个视图上放置Config::set('database.default','B'),但它仍然提供表A中的凭据
有什么帮助吗?
如何永久更改数据库?
顺便问一下,为什么我必须调用两个数据库来获取用户凭据?因为在我的登录表单上,我有一个输入来输入公司名称(A或B)。尝试如下更改连接:
DB::setDefaultConnection('A');
我刚刚将它添加到我的登录控制器中,但运气不好。顺便说一下,我正在使用eloquent。我注意到如果我转到
APP>user.php
并将protected$table='user';
更改为user类中protected的$table='B.user';
,它会起作用,但是如何从LoginController更改它呢?您还指的是一个新请求吗当你说“新建视图”时?哦,我的意思是当我成功登录if(\Auth::trunt(数组('username'=>$username,'password'=>$password)){返回视图('test');}
if(\Auth::attempt(array('username'=>$username , 'password'=>$password) ) )...
echo Auth::user()->firstName()." - ".Auth::user()->id;
//it will display Carlos - 10 instead of displaying Luis - 10
DB::setDefaultConnection('A');