我有Laravel Administrator Plugin,我设置了一个设置管理员页面,位于:
应用程序/配置/管理员/设置/ site.php
应用程序可以存储数据,但是当我尝试在我的某个控制器中获取某些数据时,这样:
配置::得到( 'administrator.settings.site')
我可以获得返回值...始终为null或数组0。
我如何获得这些配置值?
答案 0 :(得分:36)
您可以为文件路径使用文件路径而不是点符号:
Config::get('administrator/settings/site.variable_name');
点符号用于在文件中获取配置数组内的变量,而不是表示文件路径。
因此,您可以使用Config::get('administrator/settings/site.variable_name');
从administrator/settings/site.php
或ENV_DIR_NAME/administrator/settings/site.php
获取$ variable_name,具体取决于您的环境。
app/config
内的目录被视为环境。例如,当您处于“开发”环境时,app/development/database.php
将与Config::get('database.whatever')
一起使用,而当您处于“生产”环境时,app/production/database.php
将与Config::get('database.whatever')
一起阅读
当没有特定于环境的文件时,Laravel会回退到config/config/*.php
文件。
我认为管理包在app/config/packages/frozennode/administrator/administrator.php
中有一个config file,我们希望您将其用于设置。应该可以使用this convention:Config::get('package::file.option');
答案 1 :(得分:0)
使用此Laravel-Excel包时遇到了类似的问题。
我需要的解决方案与上述解决方案略有不同。我需要利用Laravel的配置覆盖功能,为正常执行设置一个配置设置,为测试设置另一个配置设置。具体来说,我通常希望将Excel文件存储在storage/excel
中,并希望将它们放入storage/testing/excel
进行测试。
使用斜线路径的技术并不起作用,因为它指向一个特定的文件,所以不尊重不同的环境:
$directory = Config::get('packages/maatwebsite/excel/export.store.path');
解决方案是使用包前缀,以便配置加载器尊重环境:
$directory = Config::get('excel::export.store.path');
我不确定excel
简写名称的来源,但我怀疑它与包中的the Excel facade有关,并将其自身公开为'excel'