laravel Facade如何才能同时使用数据库和数据库实例?

时间:2018-12-23 04:39:16

标签: laravel laravel-facade

我使用DB Facade。我看到它可以在Illuminate \ Database \ DatabaseManager的DB :: connection和Illuminate \ Database \ Connection的DB :: select中使用。

enter image description here

我不明白一个外观如何应用两个服务?

谢谢您的询问!

1 个答案:

答案 0 :(得分:1)

一个Facade可以指向用于不同方法的多个类。这可以通过魔术方法__call来实现。

这是__call类的DatabaseManager方法:

 /**
 * Dynamically pass methods to the default connection.
 *
 * @param  string  $method
 * @param  array   $parameters
 * @return mixed
 */
public function __call($method, $parameters)
{
    return $this->connection()->$method(...$parameters);
}

DB外观指向DatabaseManager类,如果找不到该方法,则DatabaseManager然后将调用转发到Connection类。