在Laravel中,有没有办法在控制器中获取localstorage项目。我想在视图刀片中返回此项目。我的本地存储项目看起来像 enter image description here
答案 0 :(得分:2)
您可以通过某些事件从javascript传递它们。你不能只在控制器中检索它们,因为它的服务器端。
答案 1 :(得分:2)
我建议您使用localStorage.getItem('myItem')
使用javascript从localStorage获取值,然后使用document.cookie = "name=value"
将其存储为Cookie。您现在可以使用$_COOKIE['cookieName']
从laravel控制器访问它。
示例:
Javascript
//define a function to set cookies
function setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
//get your item from the localStorage
var myItem = localStorage.getItem('myItem');
setCookie('cookieName', myItem, 7);
PHP
$myItem = '';
if(isset($_COOKIE['cookieName'])) {
$myItem = $_COOKIE['cookieName'];
}
答案 2 :(得分:0)
你不能在 Laravel 控制器中做到这一点,但你可以在刀片中做到这一点。所以在blade中检索数据并将数据传递给控制器。
答案 3 :(得分:0)
我会延长@kamgas 的回答
您可以将其设置在 cookie 而不是本地存储中,这将允许 Laravel 读取 cookie
要使用 Laravel 获取 cookie,您应该使用:
Cookie::get('mycookie')
由于 Laravel 默认只允许 Laravel 读取 Laravel 加密的 cookie,因此您需要在 App\Http\Middleware\EncryptCookies
中间件类中设置异常
protected $except = [
'mycookie',
];