我有一个关联数组,我在大约所有控制器中使用,我想知道是否有可能在某个地方某处定义该数组并只在所有控制器中使用?
有点像我们的角色。
就像我可以在env文件中定义它一样。
如果有办法,请告诉我。
答案 0 :(得分:2)
在config/app.php
'myVar' => [ 'key' => 'value' ],
并通过config('app.myVar')
查看此答案https://stackoverflow.com/a/32772686/5808894
在app/providers/AppServiceProvider.php
方法的boot
中添加此内容,请务必在use App
中导入应用AppServiceProvider
public function boot()
{
App::singleton('myVar', function(){
return [
'key' => 'value'
];
});
}
使用app('myVar');
答案 1 :(得分:2)
这里提到它,因为没有其他人这样做:
public class SharedArrayContainer {
public static $data = [ 'key' => 'value' ];
}
您可以将其用作:
SharedArrayContainer::$data
不如将它添加到服务容器那么好,但这是我以前做过的预框架。
答案 2 :(得分:1)
我建议为它创建一个提供者类(服务),并使用laravel Service Container进行注入。通过这种方式,您可以创建辅助方法,如get,find等...并使用laravels依赖注入(无论何时何地注入单个实例)
class ExampelService
{
// associative array
private arr = []
public function get(item) { }
public function save(item) { }
public function has(item) { }
}