【发布时间】:2018-06-18 11:27:39
【问题描述】:
【问题讨论】:
标签: javascript laravel local-storage
【问题讨论】:
标签: javascript laravel local-storage
我建议您使用 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'];
}
【讨论】:
您可以通过一些事件从 javascript 传递它们。您不能只在控制器中检索它们,因为它是服务器端。
【讨论】:
我会扩展@kamgas 的答案
你可以将它设置在 cookie 中而不是本地存储中,这将允许 Laravel 读取 cookie
要使用 Laravel 获取 cookie,您应该使用:
Cookie::get('mycookie')
由于 Laravel 默认只允许 Laravel 读取 Laravel 加密的 cookie,因此您需要在 App\Http\Middleware\EncryptCookies 中间件类中设置异常
protected $except = [
'mycookie',
];
【讨论】:
您不能在 laravel 控制器中执行此操作,但您可以在刀片中执行此操作。所以在刀片中检索数据并将数据传递给控制器。
【讨论】: