我可以连接Laravel 5创建的项目中的数据库,但是我使用了这段代码。
有没有办法在User::all()
之前添加->select("select * from users");
?
public function index(){
$user = \DB::connection('nombrebd')->select("select * from users");
$user2 = \DB::connection('nombrebd2')->select("select * from users");
return $user+$user2;
}
更新
对不起我的错误解释,我需要在两个不同的数据库中收到有关用户的所有信息。
答案 0 :(得分:0)
如果您打算使用Eloquent作为查询的基础以避免编写实际的SQL语句,则可以执行以下操作以从每个数据库中获取所有用户:
$user = App::make('App\User')->setConnection('nombrebd')->get();
$user2 = App::make('App\User')->setConnection('nombrebd2')->get();
您不能像您一样使用User::all()
,因为它会初始化一个查询构建器实例并一次性获取结果,因此无法指定它应该是哪个连接使用
答案 1 :(得分:0)
您可以拥有两个模型,其中一个模型可以指定备用连接:
protected $connection = 'mysql-alt';
一旦查询了两个模型,您甚至可以将它们合并:
$users = $user_list_a->merge($user_list_b);
我在处理遗留数据库时使用这种方法。