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

我将 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;

    }   

}

有没有什么有效的方法可以摆脱 在我的每个存储库类的开头使用 Illuminate\Support\Facades\DB的use 语句 ?理想情况下,DB Facade 将在 web.php 中可用。


到目前为止我能想到的是有一个带有 use 语句的 Repository 基类。


青春有我
浏览 515回答 2
2回答

守着一只汪

不,这就是 PHP 的工作方式。您的替代方法是使用别名:use&nbsp;DB;或者在您的调用前加上反斜杠,使其在根命名空间中查找。\DB::table('users');

月关宝盒

您可以将app()辅助函数与'db'&nbsp;服务容器绑定键一起使用:$data&nbsp;=&nbsp;app('db')->table('tableName')...->get();它不需要任何use声明。
打开App,查看更多内容
随时随地看视频慕课网APP