实际上,我正在尝试从会话中定义一个常量并设置值 在使用Helper Service Provider添加的自定义帮助程序中。但是无法在此处获取会话数据。
我已经使用Helper Service Provider添加了Helper,它工作正常。 但是尝试获取会话值。
在 HelperServiceProvider.php
public function register()
{
foreach (glob(app_path().'/Helpers/*.php') as $filename){
require_once($filename);
}
}
然后在App / Helpers文件夹的 ERPHelper.php 中,我试图获取会话数据。但没有获得会话值。
$ company =会话('company');
答案 0 :(得分:0)
这通常取决于中间件。如果要在company
中间件下设置web
会话值,则可能无法在服务提供商注册的帮助程序函数中检索到该值。
此外,出于兴趣,您为什么将其设置为常数?使用会话帮助程序检索值然后将其设置为常量对我来说似乎很奇怪。常量可能不应该以这种方式使用,但是您还要添加额外的抽象层。为什么不在需要时直接致电session('company')
?
我通过Bootstrap.php
部分中的composer.json
文件加载了辅助程序autoload
:
"autoload": {
"files": [
"app/Helpers/Bootstrap.php"
],
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database"
]
},
然后在Bootstrap.php
中运行glob来加载相关文件。
也就是说,这可能仍然无济于事,因为您不在Web中间件之列。您不能将会话值传递给您的辅助函数吗?
// Helper function.
function myErpHelper($companySessionValue) {
// My code here...
}
// Calling the helper function.
myErpHelper(session('company'));