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

How can I add Laravel Crinsane cart data as an order?

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

<?php

namespace App\Http\Controllers;

use Cart;
use App\Order;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Http\Controllers\Controller;

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("[=11=]", "~~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 时,该列生成一个空集 []。如果我不序列化,它 returns O:29:"Illuminate\Support\Collection":1:{s:8:"~~NULL_BYTE~~*~~NULL_BYTE~~items";a:0:{}}

订购型号:

    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
        protected $fillable = [
        'user_id','user_id','cart_content'
    ];
        public function User(){
        return $this->belongsTo('App\User');
    }
}

Link 来源:https://github.com/riyaz7us/Laraman/tree/master/app/Http/Controllers

来自docs

Cart::content() Of course you also want to get the carts content. This is where you'll use the content method. This method will return a Collection of CartItems which you can iterate over and show the content to your customers.

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