Laravel-在字符串上调用成员函数save()

问题描述 投票:0回答:2

我无法从会话将项目数组保存到mysql数据库,并出现错误:

"Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Call to a member function save() on string"

[当我执行dd(Dump and Die)时,数组显示如下:

    "{"1":{"name":"Bajiya","quantity":4,"price":"34.00"},
    "2":{"name":"Gulha","quantity":2,"price":"3.00"},
    "3":{"name":"kavaabu","quantity":1,"price":"2.00"}}"

下面是控制器存储功能:

public function storeCart(Request $request){

    $cart = new Cart;
    $cart= session()->get('cart');
    $cart =  json_encode($cart);
    $cart->save();
}

我的数据库中有一个表,其中包含ID和购物车列。我希望将上面的数组保存在购物车列中。

谢谢

arrays json laravel-5 save
2个回答
0
投票
每次覆盖前一个变量$cart

$cart = new Cart; //put into $cart instance of Cart class $cart = session()->get('cart'); // overwrite other data to variable $cart $cart = json_encode($cart); // json_encode converts object/array to json (so at this moment you overwrite string to variable `$cart` $cart->save(); //you're trying to call function on json)))

请尝试理解,您到底想做什么))

0
投票
使用以下功能。

public function storeCart(Request $request){ $cart = new Cart(); $cart->cart = $request->session()->get('cart'); $cart->save(); $request->session()->forget('cart'); return redirect()->route('/'); }

© www.soinside.com 2019 - 2024. All rights reserved.