Controller中的Laravel localstorage项目获取

时间:2018-01-09 12:13:30

标签: javascript laravel local-storage

在Laravel中,有没有办法在控制器中获取localstorage项目。我想在视图刀片中返回此项目。我的本地存储项目看起来像 enter image description here

4 个答案:

答案 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',
];