如何将Laravel Crinsane购物车数据添加为订单



为了从基于Crinsane的购物车创建订单并将其关联到(经过身份验证的(用户,我创建了order模型,并尝试了以下顺序控制器。

<?php
namespace AppHttpControllers;
use Cart;
use AppOrder;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesHash;
use AppHttpControllersController;
class OrderController extends Controller
{
public function __construct()
{
$this->middleware('auth:api');
}
/**
* store cart to authenticated user as order.
*
*/
public function store(Request $request)
{
$order = new Order;
$cartcontent = Cart::content();
$user = auth('api')->user();
$serializedcontent = $cartcontent->toJson(); //Returns []
//$serializedcontent = $cartcontent->toArray(); //error
//$serializedcontent = str_replace("", "~~NULL_BYTE~~", serialize($cartcontent)); //returns 0:29:"Illuminate....
$order->user_id= $user->id;
$order->cart_content= $serializedcontent;
$order->save();
}
}

编辑:

我尝试将列类型设置为TEXT(没有序列化(和JSON。我使用Json API进行前端(Vue(,使用JWT进行身份验证。

当我序列化为JSON时,该列会导致一个空集[]。如果我不序列化,它将返回O:29:"IlluminateSupportCollection":1:{s:8:"~~NULL_BYTE~~*~~NULL_BYTE~~items";a:0:{}}

订单型号:

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Order extends Model
{
protected $fillable = [
'user_id','user_id','cart_content'
];
public function User(){
return $this->belongsTo('AppUser');
}
}

链接到源:https://github.com/riyaz7us/Laraman/tree/master/app/Http/Controllers

从文档

Cart::content((当然,您也希望获得购物车的内容。这是您将使用内容方法的地方。此方法将返回CartItems集合,您可以对其进行迭代并显示内容。

您正试图在数据库中插入一个集合。您需要从基于current instance of the Crinsane的卡中获取数据,然后将数据插入数据库中json或任何适合您需求的产品。

最新更新