使用会话时 Laravel 的点符号出现问题

Trouble with Laravel's dot notation when using sessions

我在尝试存储和从会话中获取项目时遇到了一个小问题。我正在使用 API 并尝试将此 api 的结果缓存到会话中。

问题是 API 通常 return 我试图缓存的域名,例如 google.com 然后是该域的值。

不幸的是,当我使用 Session::put($domain, $value) 然后 return Session::all() 存储它时,数组如下所示...

array(
    'google' => 
        'com' => 'my_value'
)

我真的需要它...

array(
    'google.com' => 'my_value'
)

如您所见,点符号破坏了数组依赖的完整性。

看Laravel代码,你不会轻易解决的。 Laravel 此处使用 Arr::set 方法,该方法使用点符号创建多维数组。

您应该考虑将 . 替换为 _,因此 google.com 使用 google_com 作为您的会话密钥。