php - 更改 session 中的值并保存。拉维尔

标签 php laravel

我想在提交优惠券代码时更新产品价格,我将优惠券命名为ticket。这是我的功能:

public function order(Request $request)
    {
        $products = session('cart');

        $ticket_code = Input::get('ticket');
        $ticket = Ticket::where('ticket', $ticket_code)->first();

        foreach($products as $p){
            $price = $p['price'];
        }

        if(count($products) && $ticket['max'] > $ticket['used']) {
            $subtotal = [$price*70/100];
            $ticket->used += 1;
            $ticket->save();
            foreach($products as $p){
                $p['price'] = $subtotal;
                $p->save();
            }
            flash()->success('Kuponas sėkmingai panaudotas!');
            return view('cart.order')->with(array(
                'products' => $products,
                'subtotal' => $subtotal,
            ));

        }

        else {
            $finalTotal = 0;
            $subtotal = [];
            return view('cart.order')->with(array(
                'products' => $products,
                'subtotal' => $subtotal,
                'finalTotal' => $finalTotal
            ));
        }


    }

此代码不起作用:

  foreach($products as $p){
                $p['price'] = $subtotal;
                $p->save();
            }

我收到错误:调用数组上的成员函数 save()

没有foreachticket本身就可以工作。它会在提交时更改价格,但仅限于该页面。然后,当我访问支付网站时,价格仍然显示,但没有使用ticket

可行的解决方案

    foreach($products as &$item) {
                    $item['price'] = $item['price']*70;
                    $item['price'] = $item['price'] / 100;
                }

Session::put('cart', $products);

最佳答案

这有效

foreach($products as &$item) {
                    $item['price'] = $item['price']*70;
                    $item['price'] = $item['price'] / 100;
                }

Session::put('cart', $products);

关于php - 更改 session 中的值并保存。拉维尔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686218/

相关文章:

php - 如何以最快的方式导入数据进行分析

php - MySQL查询执行127秒

php - 如何从另一个Laravel应用程序中捕获Laravel错误?

php - 无法在 Laravel 中模拟部分 Log 外观

php - fatal error : Uncaught Facebook\WebDriver\Exception\UnknownServerException: Timed out waiting for driver server to start with ChromeDriver and Selenium

php - 如何逐行读取大文件?

php - Symfony 4 - 显示模板问题 css

php - 使用php将excel文件导入mysql如何动态获取/添加和插入列?

php - 如何将以下 mysql 查询形成为 laravel 查询语法?

css - @yield 和 @include Laravel Blade 模板导入 CSS 之间的区别