首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改会话中的变量Laravel 7

更改会话中的变量Laravel 7
EN

Stack Overflow用户
提问于 2020-10-07 23:46:16
回答 1查看 49关注 0票数 2

我想通过post表单在我的会话(‘cart’)中更改属性"cantidad“,该表单有一个输入type="num”,它将在会话中更改数量。

但我不能用成功来改变它,它不会什么都不做。

会话代码

代码语言:javascript
复制
$cart = [
        $id => [
            "id" => $product->id,
            "nombre" => $product->nombre,
            "cantidad" => 1,
            "precio" => $product->precio,
            "foto" => $product->imagen1

        ]

正在尝试更改会话属性

代码语言:javascript
复制
public function updateCart($id , Request $request){

    $cart = session()->get('cart');

    foreach($cart as $index => $product){
        if($product["id"] == $id){
            $producto["cantidad"] = $request->cantidad;
        }
    }

    session()->put('cart' , $cart);
    return view('carrito/carrito');
}

我哪里错了?

很抱歉问这个问题,我是新来的

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 00:03:42

PHP中的数组是通过值传递的,而不是通过引用传递的。换句话说,在您的foreach循环中,您将获得数组的一个副本。

试着这样做:

代码语言:javascript
复制
foreach(array_keys($cart) as $index){
    if($cart[$index]["id"] == $id){
        $cart[$index]["cantidad"] = $request->cantidad;
    }
}

或者,您可以通过引用&运算符来传递数组:

代码语言:javascript
复制
foreach($cart as &$product){
    if($product["id"] == $id) {
        $product["cantidad"] = $request->cantidad;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64247668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档