Laravel - 如何在自定义类中访问App对象?

raz*_*nsg 7 php laravel

我在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);
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

更新:当然我试过"使用App;" (d`oh)当然它不起作用.当然,它现在有效.

小智 8

您还可以使用app()返回应用程序实例的辅助函数.并$config = app('config');获得配置对象.


Sas*_*ley 5

你在命名空间libraries\data.您可以添加use App;或调用App方法\App::.