gpt4 book ai didi

php - 拉维尔 5.7 : A facade root has not been set

转载 作者:行者123 更新时间:2023-12-02 00:54:44 32 4
gpt4 key购买 nike

我正在尝试从数据库中获取站点范围的全局设置并在我的 Controller 中使用这些设置。

为了做到这一点,我在 config 目录下创建了一个自定义的 global.php 文件。
定义的键=>值对。
尝试使用 DB::table(....) 外观获取值。

但是它返回这个错误:

A facade root has not been set.

我不能超越这个。

config.php文件如下:

use Illuminate\Support\Facades\DB;

return [

'image_resize' => DB::table('settings')->where('id', 1)->value('image_resize'),
'popup' => DB::table('settings')->where('id', 1)->value('popup'),
'site_on' => DB::table('settings')->where('id', 1)->value('site_on')

];

最佳答案

你可以使用它

use Illuminate\Support\Facades\Config;

class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}

/**
* Register any application services.
*
* @return void
*/
public function register()
{
Config::set('global', [
'image_resize' => DB::table('settings')->where('id', 1)->value('image_resize'),
'popup' => DB::table('settings')->where('id', 1)->value('popup'),
'site_on' => DB::table('settings')->where('id', 1)->value('site_on')
]);
}

然后在 Controller 中你可以使用config('global.site_on')

你也可以使用一个查询而不是三个

public function register()
{
$setting = DB::table('settings')
->where('id', 1)
->first(['popup', 'image_resize', 'site_on']);
Config::set('global', [
'image_resize' => $setting->image_resize,
'popup' => $setting->popup,
'site_on' => $setting->site_on
]);
}

或者更简短的代码是

public function register()
{
$setting = DB::table('settings')
->where('id', 1)
->first(['popup', 'image_resize', 'site_on']);
Config::set('global', get_object_vars($setting));
}

关于php - 拉维尔 5.7 : A facade root has not been set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55129389/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com