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