连接到Laravel 5中的两个数据库

时间:2015-10-16 16:20:47

标签: php laravel laravel-5

我可以连接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;    
}

更新

对不起我的错误解释,我需要在两个不同的数据库中收到有关用户的所有信息。

2 个答案:

答案 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);

我在处理遗留数据库时使用这种方法。