【问题标题】:Laravel localstorage item fetch in ControllerLaravel localstorage 在控制器中获取项目
【发布时间】:2018-06-18 11:27:39
【问题描述】:

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

【问题讨论】:

    标签: javascript laravel local-storage


    【解决方案1】:

    我建议您使用 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'];
    }
    

    【讨论】:

    • 你应该使用 laravel 来获取 cookie Cookie::get('theme')
    【解决方案2】:

    您可以通过一些事件从 javascript 传递它们。您不能只在控制器中检索它们,因为它是服务器端。

    【讨论】:

      【解决方案3】:

      我会扩展@kamgas 的答案

      你可以将它设置在 cookie 中而不是本地存储中,这将允许 Laravel 读取 cookie

      要使用 Laravel 获取 cookie,您应该使用:

      Cookie::get('mycookie')
      

      由于 Laravel 默认只允许 Laravel 读取 Laravel 加密的 cookie,因此您需要在 App\Http\Middleware\EncryptCookies 中间件类中设置异常

      protected $except = [
          'mycookie',
      ];
      

      【讨论】:

        【解决方案4】:

        您不能在 laravel 控制器中执行此操作,但您可以在刀片中执行此操作。所以在刀片中检索数据并将数据传递给控制器​​。

        【讨论】:

        • 这个答案有点乱。没有像“刀片”这样的独特概念,它仍然是服务器端。而且刀片不能“将数据传递给控制器​​”,它是从控制器返回的。
        猜你喜欢
        • 1970-01-01
        • 2022-08-18
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        • 2021-01-28
        • 2017-11-03
        • 2014-12-24
        • 2018-03-19
        相关资源
        最近更新 更多