作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从数据库中获取站点范围的全局设置并在我的 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/
我正在使用 git clone 部署我的 Laravel 项目并使用 git pull 进行更新 它工作正常,但每次部署时,我都必须从 config/app.php providers 数组和 ali
我是一名优秀的程序员,十分优秀!