取消序列化购物车数据不工作Laravel

取消序列化购物车数据不工作Laravel,laravel,Laravel,我正在将购物车产品保存为购物车会话中的未序列化数据 $order=新订单() 现在我需要取消序列化数据以在我的刀片文件中使用它,这就是我正在使用的函数 $orders = Order::with('user')->findOrFail($order->id); $orders->transform(function($order, $key){ $order->cart = unserialize($order->cart

我正在将购物车产品保存为购物车会话中的未序列化数据

$order=新订单()

现在我需要取消序列化数据以在我的刀片文件中使用它,这就是我正在使用的函数

$orders = Order::with('user')->findOrFail($order->id);

        $orders->transform(function($order, $key){

            $order->cart = unserialize($order->cart);

            return $order;

        });

        dd($orders);
我犯了这个错误

对未定义方法App\Order::transform()的BadMethodCallException调用

有什么问题吗?我如何才能取消我的数据序列化


有什么想法吗?

问题不在于
取消序列化,它甚至没有实现。问题似乎与您尝试使用的未定义方法有关(
$orders->transform

您能在订单类中提供代码吗?您在那里定义了
转换
方法了吗

编辑:

通过使用
serialize
您有点“遗漏了关系数据库的要点以及数据库引擎中固有的数据类型”。这样做会使数据库中的数据不可移植,难以读取,并且会使查询复杂化


此外,许多测试证明
json_encode
serialize

更快。使用findOrFail,您只能检索模型的一个实例,而不是一个集合

$orders = Order::with('user')->findOrFail($order->id);
还有什么是$order->id您有您的订单型号吗

所以

或者您想要一个集合,那么您的代码将像这样工作

$orders = Order::with('user')->get();

$orders->transform(function($order, $key) {
    $order->cart = unserialize($order->cart);

    return $order;
});

transform
方法属于集合,您可以改为使用。显示模型代码。
$order->load('user');

$order->cart = unserialize($order->cart);
$orders = Order::with('user')->get();

$orders->transform(function($order, $key) {
    $order->cart = unserialize($order->cart);

    return $order;
});