Laravel和多个数据库连接


Laravel and multiple database connections

这可能是一个愚蠢的问题。我有两个单独的数据库与Laravel 4一起使用。其中一个只能使用某个 IP(安全原因)访问,而另一个可以访问。我有两个不同的 mysql 连接。我已经看到使用这个的数据库连接测试:

if(DB::connection('mysql')->getDatabaseName()){ }

为了测试什么可以看到,什么看不到,我试图给mysql一个假密码。我得到这个漂亮的丑陋错误,因为它无法连接。有没有办法让它在无法访问数据库的情况下,只是忽略它?只有一个 PHP 类在页面加载时调用仅安全数据库,但上述检查似乎不起作用。

通过 laravel 的核心代码,当数据库连接失败时不会引发特定的异常。

因此,解决方案是:

try {
    //Strings always evaluate to boolean true
    $dbConnected = (bool)DB::connection('mysql')->getDatabaseName();
}
catch (Exception $e)
{
    $dbConnected = false;
}

然后根据变量 $dbConnected 处理代码。