我在app/libraries/data/Data中有一个自定义类.php我想在其中返回与数据库的连接。
问题是我需要动态加载配置文件中不存在(也不能)存在的数据库。
我找到了一个不错的解决方案,老实说,这正是我所希望的,但似乎我无法从那里访问 App 对象。
<?php
namespace libraries'data;
use DB;
class Data
{
public function db($name, $firma = false)
{
if ($name == 'firma') {
$config = App::make('config');
$connections = $config->get('database.connections');
$newConnection = $connections[$config->get('database.firma_%s')];
$name = sprintf('firma_%s', $firma);
$newConnection['database'] = $name;
App::make('config')->set('database.connections.'.$name, $newConnection);
}
return DB::connection($name);
}
}
?>
更新:当然我尝试了"使用应用程序;"(哦)当然没有用。当然,它现在有效。
您还可以
使用返回应用程序实例的 app()
帮助程序函数。$config = app('config');
获取配置对象。
您在命名空间libraries'data
中。要么添加use App;
,要么使用 'App::
调用 App 方法。
由于您定义了自定义命名空间库''数据,应用程序将尝试在库''数据命名空间中查找 App 类。
如果你想使用 laravel App 类,你需要写这个:
$config = 'App::make('config');
或者在文件顶部添加use App;
,就像使用 DB 类一样。