为了账号安全,请及时绑定邮箱和手机立即绑定

如何从会话 Laravel 中删除项目

如何从会话 Laravel 中删除项目

PHP
临摹微笑 2021-11-13 17:16:17
如何从 Laravel 的会话中删除数据。我不想通过单击单个删除按钮来删除所有数据。我对每个数据都有删除按钮,所以想一一删除。我目前的代码如下:public function deleteProduct(Request $request){    $id = $request->productId;// this id i want to delete which i get from view    $products = $request->session()->get('product');    foreach ($products as $key => $value)    {        if ($value['id'] == $id)        {            unset($products [$key]);        }    }    //then you can redirect or whatever you need    return redirect()->back();}我也试过这个foreach ($products as $product){    if ($product->id == $id)    {        $products->forget($product);    }}我在会话中的数据格式如下[{id: 2,name: "Marlene Reichert",description: "Debitis asperiores sed sit assumenda unde quo natus. Consequatur est labore tenetur quae. Eius distinctio ea omnis aspernatur porro earum quae.",category_id: 3,price: 76,image: "http://loremflickr.com/400/300?random=71",created_at: "2019-07-16 10:12:27",updated_at: "2019-07-16 10:12:27",qty: 1},{id: 6,name: "Kaylin Emard",description: "Et aperiam omnis nam iure id non fugiat. Excepturi voluptatem ipsam magnam. Esse asperiores ducimus enim et.",category_id: 8,price: 14,image: "http://loremflickr.com/400/300?random=17",created_at: "2019-07-16 10:12:27",updated_at: "2019-07-16 10:12:27",qty: 1},{id: 5,name: "Prof. Iliana Mohr",description: "Autem sequi esse laudantium ut ut explicabo enim. Corporis cupiditate dolorum et ratione sequi architecto. Vitae enim ex hic nihil.",category_id: 2,price: 207,image: "http://loremflickr.com/400/300?random=99",created_at: "2019-07-16 10:12:27",updated_at: "2019-07-16 10:12:27",qty: 1}]
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

试试这个代码

$request->session()->forget('product');


查看完整回答
反对 回复 2021-11-13
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

这$request->session()->forget('product');是从会话中删除整个密钥,而您不希望那样。所以...


如何从 Laravel 的会话中删除数据。


在你的情况下,你这样做:


public function deleteProduct(Request $request){

    $id = $request->productId;


    // Get the array from session.

    $products = $request->session()->get('product');


    // Remove unwanted key from array.

    foreach ($products as $key => $value)

    {

        if ($value->id == $id)

        {

            unset($products[$key]);

        }

    }


    // Override the session.

    $request->session()->put('product', $products);


    return redirect()->back();

}

deleteAllProducts()例如,如果有一天您在系统中添加了该功能,那么您就可以很好地调用$request->session()->forget('product');


查看完整回答
反对 回复 2021-11-13
?
繁星coding

TA贡献1797条经验 获得超4个赞

您不能将 foreach 用于数组,而是使用 for 循环


for($x = 0;$x<sizeOf($products);$x++)

{

  $product = $products[$x];

  #then do your manipulation here

}


查看完整回答
反对 回复 2021-11-13
  • 3 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信