【问题标题】:Laravel service provider to retrieve data from databaseLaravel 服务提供者从数据库中检索数据
【发布时间】:2019-08-31 12:43:51
【问题描述】:

我是 Laravel 服务提供商的新手,我只想将数据库数据提取出来并返回,这样我的配置文件就可以访问该数据。

如何在 Laravel 服务提供者中做到这一点。

【问题讨论】:

  • 你能解释一下“所以我的配置文件可以访问该数据”是什么意思吗?你在做包裹吗?如果是这样,您可以尝试将数据库查询放在您的包服务提供者方法boot 中。然后在最终发布之前使用该数据构建您的配置。全部在引导方法中。
  • 我正在创建一个自定义服务提供商。好的,我将在 boot() 方法中添加查询。如何从我的应用程序中的其他位置访问该数据?

标签: laravel laravel-5 service-provider


【解决方案1】:

使用引导方法访问数据库并将其发布到临时配置键的示例。

class YourServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $welcomeMessage = "Welcome " . \App\User::first()->name;
        config(['your-namespace.message' => $welcomeMessage ]);
    }

稍后在您的应用程序的其他文件中,您可以像这样访问它

Route::get('/', function () {
    return config('your-namespace.message');
});

【讨论】:

  • 这会对每个请求都执行此操作吗?
  • @bandejapaisa 是的
  • 但不推荐。当你第一次克隆并运行composer install 时还没有实际连接到数据库,当 laravel 尝试发现新包时它会返回一个错误。取决于您将在哪里使用这些配置,如果它在 Controller 中,可能使用中间件会是更好的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
相关资源
最近更新 更多