我在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;” (d`oh)当然它不起作用。当然,它现在有效。
答案 0 :(得分:7)
您还可以使用返回应用程序实例的app()
帮助程序函数。并$config = app('config');
获取配置对象。
答案 1 :(得分:5)
您位于名称空间libraries\data
中。您可以添加use App;
,也可以使用\App::
调用App方法。
答案 2 :(得分:1)
由于您定义了自定义命名空间 libraries \ data ,因此应用程序将尝试在libraries \ data命名空间中查找App类。
如果你想使用laravel App类,你需要写这个:
$config = \App::make('config');
或者在文件顶部添加use App;
,就像使用数据库类一样。