7

我需要根据客户处理不同类型的数据库。

我创建了一个名为MyDBFacade的 Facade ,我可以在其中调用自己的函数。

例如:

MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server

是否有可能以某种方式扩展 Facade DB::框架,我可以添加自己的函数然后调用DB::createUser("MyUser")

任何线索或想法将不胜感激。

在此先感谢,祝您有美好的一天。

4

2 回答 2

8

假设您在app/Facades/MyDBFacade.php

<?php

namespace App\Facades;

use Illuminate\Support\Facades\DB;

class MyDBFacade extends DB
{
    // ...
}

您只需config/app.php要从 ,中更改单行

'DB' => Illuminate\Support\Facades\DB::class,

'DB' => App\Facades\MyDBFacade::class,

现在这一切都应该起作用了。

于 2016-11-15T16:34:15.260 回答
2

您可以像这样创建/扩展您的外观:

<?php namespace YourNameSpace\Facades;

class MyDBFacade extends Illuminate\Support\Facades\DB {

        /**
         * Create your custom methods here...
         */
        public static function anyMethod($active)
        {
            /// do what you have to do
        }

}

然后将其替换(或将其添加为新的)到您的app/config/app.php

'aliases' => array(
  'MyDBFacade'   =>  'YourNameSpace\Facades\MyEventFacade::class',
),

记得composer dump-autoload最后执行。

希望这可以帮助!

于 2016-11-15T16:30:34.803 回答