如何检查是否连接到Laravel 4中的数据库?

And*_*w M 20 laravel laravel-4

如何检查laravel是否已连接到数据库?我四处搜寻,找不到任何可以告诉我这是怎么做的.

Ant*_*iro 35

您可以使用

if(DB::connection()->getDatabaseName())
{
   echo "Connected sucessfully to database ".DB::connection()->getDatabaseName().".";
}
Run Code Online (Sandbox Code Playgroud)

它将为您提供已连接数据库的数据库名称,以便您可以使用它来检查您的应用是否已连接到该数据库.

但是...... Laravel只有在需要来自数据库的东西时才会连接到数据库,并且在连接尝试时,如果发现任何错误它会引发一个PDOException,所以这就是你可以做的将你的用户重定向到一个友好的页:

App::error(function(PDOException $exception)
{
    Log::error("Error connecting to database: ".$exception->getMessage());

    return "Error connecting to database";
});
Run Code Online (Sandbox Code Playgroud)

将其添加到您的app/filters.php文件中.

在我看来,你真的不需要检查它是否是connceted,只需在异常处理闭包中采取适当的操作.


ahm*_*lim 5

您可以使用以下代码:

try{
   DB::connection()->getDatabaseName();
}catch(Exception $e){
   echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)