现在我的Settings.php
模型中已经有了这个:
public function scopeFromCache($query)
{
\Cache::rememberForever('settings', function () use ($query) {
return $query->first();
})->first();
}
然后在我boot
的{{1}}方法中执行此操作:
AppServiceProvider
是否可以在没有$settings = Settings::fromCache()->first();
的情况下获取设置:
->first()
所以不是返回$settings = Settings::fromCache();
返回对象吗?
答案 0 :(得分:1)
要回答您的问题,否。
我会采取另一种方法,因为你要永远缓存一些东西(设置),我会自定义帮助器来获取这些设置。
创建文件 app / helpers.php ,在 composer.json 添加
1.parse all the entries into a list:
[
{A,B,C}
{C,D,E}
...
]
2.start with the first element/set of the list can called start_entry, {A,B,C} in this case
3.traverse other element in the list and do the following:
if the intersection of the element and start_entry is not empty
start_entry = start_entry union with the element
remove element from the list
4.with the updated start_entry, traverse the list again until there is not new update
in" autoload"阵列。
现在忘记使用范围,并创建方法(函数)来使用缓存,就像你现在正在做的那样:
"files": [
"app/helpers.php"
]
现在项目中的任何地方都只需拨打if ( ! function_exists('settings')) {
function settings()
{
return Cache::rememberForever('settings', function () {
return Settings::first();
});
}
}
即可获得您的对象。