缓存外观不工作在Laravel 5
我想要一些设置为用户可管理的。因此,我将它们存储在数据库中,然后检索并缓存它们。但是,当我尝试在config/config.php
文件内调用Cache
外观时,出现错误。详情如下。缓存外观不工作在Laravel 5
我有以下位于app/config/custom.php
代码:
<?php
// app/config/custom.php
use Illuminate\Support\Facades\Cache;
return [
'foo' => Cache::get('foo');
];
其中吐出以下错误:
Fatal error: Call to a member function get() on a non-object in D:\www\project\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 216
如何解决这一问题?
正如在注释中所讨论的,配置文件并不意味着存储动态应用程序值,如果它是动态的(即用户特定的值),则应该在应用程序的不同部分处理它们。
通过使用服务提供商,您可以在整个应用程序中使全局可用。
感谢您的回答。我认为,它回答了为什么上面的代码不起作用。我已经考虑到不可能在配置文件中使用Facades的问题。请参阅更详细的问题在这里:http://stackoverflow.com/questions/38673236/is-it-a-good-idea-to-edit-env-dynamically-in-laravel-5 –
正如讨论,我的答案是不是为了获得更多的声誉,而是为了社区的利益。这就是说,它回答了你的问题,你为什么会得到这个错误,以及如何为不同的应用程序部分提供一些价值的建议。存储管理面板设置的最佳方式是通过数据库,并且在您提到的用于设置邮件服务器设置的情况下,从Mailer模型加载这些值。 –
我宁愿避免在配置文件以外的地方加载设置,因为它会在代码库中引入不必要的混淆。 –
您是否启用了缓存? – ToyRobotic
@ToyRobotic是的,我将缓存驱动程序设置为'文件'。我怀疑这个问题是由于我试图使用缓存里面的配置文件引起的,尽管我不知道为什么会出现这个问题 –
如果我没有弄错helpers.php中的内容,你可以更改用法语句使用Cache; – engvrdr