Laravel MongoDB pass object in model

我当前的MongoDB模式使用自定义UUID对象类型作为。我正在尝试使用 在我的用户模型中生成一个新的。我找不到有关如何将对象数据类型传递到模型中的任何解决方案。_idUUID$attributes = [];


我的型号 :


use Authenticatable, Authorizable, CanResetPassword;


protected $connection = 'mongodb';

protected $collection = 'users';


protected $fillable = [

    'username', 'email', 'password'

];


protected $attributes = [

    '_id' => Uuid\Uuid::uuid4(),

    'rank' => 1,

    'token' => 0,

    'banned' => false,

    'vote_count' => 0,

    'vote_bank' => 0,

    'capeAllowed' => false,

    'skin' => null,

    'cape' => null,

    'verified' => false,

    'nameChanges' => 0

];

我找不到将对象 UUID 放入_id的方法。它必须是对象类型,而不是字符串。


我尝试过通过使用传递新对象来做到这一点,但它也不接受它。Web服务器曾经在NodeJS上,使用对象作为数据类型没有任何问题。数据库已经有许多使用 UUID 二进制对象作为_id的记录。User::create(Uuid::uuidv4())


我也尝试过使用许多库。许多不使用Laravel 6.x,或者那些工作的那些不返回二进制格式。


MMTTMM
浏览 93回答 1
1回答

Qyouu

解决方案是使用该方法。不接受我所看到的变量。我使用PHP的二进制类将ramsey / uuidv4转换为UUID类型:User::create()protected $attributes = []new Binary(Uuid::uuid4()->getBytes(), Binary::TYPE_UUID)
打开App,查看更多内容
随时随地看视频慕课网APP