在存储库类中摆脱使用Illuminate \ Support \ Facades \ DB语句

时间:2019-08-24 22:35:46

标签: php laravel repository-pattern lumen

我与Query Builder一起在流明中使用存储库模式。存储库类通常如下所示:

<?php
namespace App\Repositories;

use Illuminate\Support\Facades\DB;

class RepoNameRepository {
    public function methodName() {
        /* 
        Various Calls to the DB facade...
        $data = DB::table("tableName")...->get(); 
        */
        return $data;
    }   
}

在每种方法的开头,是否有任何有效的方法来摆脱 use语句 use Illuminate \ Support \ Facades \ DB 我的存储库类?理想情况下,数据库外观将仅在web.php中可用。

到目前为止,我能想到的是使用use语句创建一个Repository基类。

2 个答案:

答案 0 :(得分:1)

不,这就是PHP的工作方式。

您的替代方法是使用别名:

use DB;

或在呼叫之前加一个反斜杠,以便它出现在根名称空间中。

\DB::table('users');

答案 1 :(得分:0)

您可以将app()帮助函数与'db' service container binding key一起使用:

$data = app('db')->table('tableName')...->get();

它不需要任何use语句。