【问题标题】:Is there anything bad about using $_SESSION in Laravel 5.8 and if so what and why?在 Laravel 5.8 中使用 $_SESSION 有什么不好的地方吗?如果是,那是什么原因?
【发布时间】:2019-06-19 14:17:49
【问题描述】:

我正在尝试访问 Laravel 5.8 会话并取消设置会话中对象内的数组,但我似乎无法弄清楚。

我可以使用原生 php $_SESSIONunset($_SESSION["object"]->myarray[row_number]),世界上一切都很好,但使用 Laravel 会话似乎并不容易。

我想完全避免 Laravel 会话并使用本机 php 来节省时间并完成这个项目,我只是想知道在 laravel 中使用本机 php 会话是否有任何长期缺点

我搜索了 google 和 Laravel 文档,但找不到任何关于在 Laravel 中使用多维数组访问对象的内容。

【问题讨论】:

  • 你为什么不直接使用session()->put('name', $value);?那么session()->get('name');去找回呢?你说你想避免“Laravel 会话”但这只是 PHP 会话,中间有一些 Laravel 魔法来帮助你......所以你不需要在 Stack Overflow 上发布问题:P
  • 按照@stokoe0990 所说的,您甚至可以使用session(['key' => 'value]) 并使用session('key'); 检索
  • 会话服务有什么问题?

标签: php laravel laravel-5.8


【解决方案1】:

我想完全避免 Laravel 会话并使用本机 php 来节省时间并完成这个项目,我只是想知道在 laravel 中使用本机 php 会话是否有任何长期缺点

这有点棘手,因为它几乎从 Stack Overflow 的职权范围变成意见,但这里是:

你应该尽可能地使用 Laravel 的功能,因为它为你提供了你可能不知道的保护,并且它可以适应未来的变化。它还使您的代码保持一致。

例如,如果您想更改将来存储会话变量的方式,则必须重新编写您使用过 $_SESSION["object"] 的每一段代码。使用 Laravel 的界面意味着,如果您将来要更改其存储方式,则无需更新站点中的代码以反映此更改。

查看其他关于使用 Laravel 编写此代码的更好方法的建议,但要回答“在 Laravel 5.8 中使用 $_SESSION 有什么不好的地方吗?如果是,那是什么以及为什么?” – 是的,简而言之。

【讨论】:

  • 有谁知道在 laravel 5.8 中使用本机 php 会话的任何其他问题?
  • 我遇到了与 OP 类似的问题,但不是为了方便,我有共同驻留的微型应用程序,它们的行为就好像它们是同一域上的单个单体。为此,我需要一切都使用相同的共享会话数据库,这样我就可以让人们跨应用程序登录。它适用于所有非 laravel 应用程序,但现在我想开始将东西转移到 Laravel;所以我需要一些机制来调整 Laravel 以使用 PHP“本机”会话。
【解决方案2】:

Laravel 中,您可以像这样使用会话变量。链接到documentation

$request->session()->get('object');

你应该能够用类似的东西做你想做的事。

$index = 0;
$request->session()->forget('object.myarray.' . index);

【讨论】:

  • 删除会话数据时使用$request->session()->forget('key');
  • 是的,谢谢,没想到您可以嵌套该调用,这样您就可以并且是一个可行的解决方案。
  • 不适合我,没有给出错误,也没有发生未设置。
  • 我猜你用自己的行号替换了索引?
  • 你能用 dd($request->session()->get('object')); 发布你的会话变量吗?
【解决方案3】:

尝试这样做$value = $request->session()->get('key.value');

session docs

【讨论】:

  • 请在您的代码中添加更多解释,以便其他人可以从中学习
【解决方案4】:

对于一个多维数组

$tempCategories = array(
    0 => array(
        'cat' => 'Wood'
    ),
    1 => array(
        'cat' => 'Metal'
    ),
);
<h5>{{$cat['cat']}}</h5>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 2014-08-25
    • 2011-02-19
    相关资源
    最近更新 更多