Laravel 5.1,如何在模型中建立动态数据库连接

时间:2015-11-19 13:15:59

标签: php laravel laravel-5 laravel-5.1

我正在使用自创包。这个包包括一些模型。这些模型应该连接到APP数据库,但由于它是一个包,因此数据库名称可以不同。

为了解决这个问题,我的软件包包含一个配置文件,其中存储了数据库名称(连接名称)。

在配置文件中:

return [ 'app_model_db_connection' => 'first_database' ];

这很好用,我可以通过执行以下操作获取配置值:Config::get('myconfig.app_model_db_connection);

现在我想在我的模型中这样做:

protected $connection = \Config::get('package_customview.app_model_db_connection');

但这不起作用。错误: syntax error, unexpected '(', expecting ',' or ';'

看起来我只能在$connection =之后添加一个字符串。因为我这样做:protected $connection = "first_database",它有效。但我想从我的配置文件中获取此值。这有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,你只需要把它放在模型的构造函数中。

public function __construct(array $attributes = [])
{
    parent::__construct($attributes);
    $this->connection = \Config::get('package_customview.app_model_db_connection');
}