我在我的laravel项目中使用了两个数据库连接。
我需要修改两个数据库中的表。
我已经设置好了所有的东西,现在我在四处游荡,试图从第一个和第二个数据库中获取数据,但是文档几乎没有提供如何这样做的信息,我只发现:

$users = DB::connection('foo')->select(...);

有更多的资源吗?我什么也找不到。
到目前为止,我知道如果我使用多个数据库,我就不能再使用雄辩了?至少我不能用雄辩的第二个数据库,这不是默认的。
为了测试,我在两个数据库上用不同的数据创建了相同的表。但是我不能查询数据,我总是会得到这个错误:
Undefined property: Illuminate\Database\MySqlConnection::$User

以下是我的测试:
 $users1 = DB::connection('mysql_live')->select('SELECT * FROM users');
 info($users1);

 $users2 = DB::connection('mysql')->User::all();
 info($users2);

我也试过:
$users1 = DB::connection('mysql_live')->User::all();

最好是关于如何正确使用DB::connection和实际选择、编辑、插入数据等的文档。
编辑
如何从两个数据库中选择所有用户?
对于第二个数据库,我永远不需要创建新的列或表,我只需要更新数据,可能那里不需要雄辩,这意味着我总是需要执行原始sql,对吧?如果我使用雄辩我也需要创建模型?

最佳答案

$users1 = DB::connection('mysql_live')->table('users')->get()->toArray();

对于第二个查询,您也可以这样做。没有理由使用雄辩的模式。但如果你想:
在用户模型中,必须定义连接
 protected $connection = 'mysql'; //which is the default as well

而且还必须定义要检索的字段,如:
protected $fillable = ['email','username'];

真正重要的是隐藏敏感字段,如密码等。在那里,您可以使用另一个数组:
protected $hidden = ['password'];

然后你可以用这样的口才:
$users = User::get();

07-25 23:24
查看更多