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

如何将Laravel Crinsane购物车数据添加为订单?,laravel,eloquent,shopping-cart,laravel-6,laravel-controller,Laravel,Eloquent,Shopping Cart,Laravel 6,Laravel Controller,为了从基于Crinsane的购物车创建订单并将其与(经过身份验证的)用户关联,我创建了订单模型,并在order controller中尝试了以下操作 <?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

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

<?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("\0", "~~NULL_BYTE~~", serialize($cartcontent)); //returns 0:29:"Illuminate....

        $order->user_id= $user->id;
        $order->cart_content= $serializedcontent;
        $order->save();

    }
}
链接到源:

来自

购物车::内容()当然,您还希望获取购物车的内容。这 是您将使用内容方法的地方。此方法将返回一个 您可以迭代并显示的CartItems集合 满足于你的客户

您正试图在数据库中插入集合。您需要从基于Crinsane的卡的
当前实例中获取数据,然后将数据作为

json
或任何适合您需要的东西。

仍然不起作用。已编辑的购物车控制器存储方法:
cart::instance('shopping')->添加([//产品])
。将订单控制器修改为
Cart::instance('shopping')->content()。它返回
O:29:“照亮\支持\收集”:1:{s:8:"
。当序列化或json时,它返回一个空数组。您可以用更多代码编辑帖子吗?如何序列化?数据库列的类型是什么?您的mysql应用程序中是否启用了严格类型?如何获取/重新运行数据库结果以显示它?它是否作为json或json保存在数据库中这只是一个空字符串?你能提供订单的型号吗?可填充、受保护、隐藏等。这里有一个关于如何序列化数据的文档链接编辑了这个问题。为了方便起见,还添加了到源代码的链接。我不知道为什么你在可填充文件中有2倍的用户id,但你可以删除其中一个。还要检查这个这是可以解决您的问题的
store()
方法。我现在得到了它。我在web路由中使用了我的购物车控制器(用于会话),在api路由中使用了签出控制器。无论如何,如果我使用vue、vuex store而不是crinsane来存储我的购物车会怎么样?
    <?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');
    }
}