这可能是一个愚蠢的问题。我有两个单独的数据库与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
处理代码。