Php Laravel 5.7:尚未设置门面根目录
我正在尝试从数据库获取站点范围的全局设置,并在控制器中使用这些设置 为此,我在config目录下创建了一个自定义的global.php文件。Php Laravel 5.7:尚未设置门面根目录,php,laravel,Php,Laravel,我正在尝试从数据库获取站点范围的全局设置,并在控制器中使用这些设置 为此,我在config目录下创建了一个自定义的global.php文件。 定义的键=>值对。 尝试使用DB::table(…)facade获取值 但它返回以下错误: 尚未设置门面根目录 我无法超越这一点 config.php文件如下: use Illuminate\Support\Facades\DB; return [ 'image_resize' => DB::table('settings')->
定义的键=>值对。
尝试使用DB::table(…)facade获取值 但它返回以下错误: 尚未设置门面根目录 我无法超越这一点 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')
]);
}
然后在控制器中,您可以使用config('global.site\u 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));
}
我在处理app/config.php文件时遇到了这个问题。我添加了一些选项,不小心在它后面放了一个分号而不是逗号。 我有:
'vapid_public_key'=>env('vapid_public_key');env(“乏味的私钥”),
将其更改为正确的逗号,一切正常。为什么不使用.env文件?您是否启用了
app.php
文件中的facades?@Adam:因为我想用我的控制面板重写这些设置。@kuh chan:是的,我在项目的其他几个控制器中使用DB facade。发生此错误的原因是在laravel中注册了配置,然后是FacadesThanks吊柱,我已经尝试过了,但它给出了一个错误:“Class'App\Providers\Config'notfound”添加use-light\Support\Facades\Config代码>见更新answer@megavolkan你试过了吗?是的,我试过了,而且效果很好。除了短代码不起作用。它抛出一个错误,说明“常量”设置“未在get\u object\u vars(设置)方法”中定义”。我已经使用了长版本,它的工作。谢谢@Davit.Try此配置::set('global',get_object_vars($setting))代码>必须是$设置
我忘记了$
'vapid_public_key' => env('VAPID_PUBLIC_KEY'); <--- offending semi-colon
'vapid_private_key' => env('VAPID_PRIVATE_KEY'),