Php 在插入mongodb之前,如何在模型中设置数据类型?(拉韦尔蒙戈德)

Php 在插入mongodb之前,如何在模型中设置数据类型?(拉韦尔蒙戈德),php,mongodb,laravel,laravel-5.3,laravel-eloquent,Php,Mongodb,Laravel,Laravel 5.3,Laravel Eloquent,我从这里得到参考: 我在mongodb中创建数据库和集合。我不在mongodb中创建文档和列。因为在插入数据时,它会自动生成列和数据类型 我的控制器,您可以在下面看到: public function create(array $attributes) { ... $result = User::create($attributes); ... } <?php ... use Jenssegers\Mongodb\Eloquent\Model as Eloquen

我从这里得到参考:

我在mongodb中创建数据库和集合。我不在mongodb中创建文档和列。因为在插入数据时,它会自动生成列和数据类型

我的控制器,您可以在下面看到:

public function create(array $attributes)
{
    ...
    $result = User::create($attributes);
    ...
}
<?php
...
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; 
use Jenssegers\Mongodb\Eloquent\HybridRelations;

class User extends Eloquent
{
    use HybridRelations;  
    use SoftDeletes;

    protected $connection = 'mongodb';
    public $table = 'users';
    protected $dates = ['deleted_at'];

    public $fillable = [
        ...
        'name',
        ...
    ];

    protected $casts = [
        ...
        'name' => 'string',
        ...
    ];
}
我的模型,您可以在下面看到:

public function create(array $attributes)
{
    ...
    $result = User::create($attributes);
    ...
}
<?php
...
use Jenssegers\Mongodb\Eloquent\Model as Eloquent; 
use Jenssegers\Mongodb\Eloquent\HybridRelations;

class User extends Eloquent
{
    use HybridRelations;  
    use SoftDeletes;

    protected $connection = 'mongodb';
    public $table = 'users';
    protected $dates = ['deleted_at'];

    public $fillable = [
        ...
        'name',
        ...
    ];

    protected $casts = [
        ...
        'name' => 'string',
        ...
    ];
}

MongoDB支持两个可以直接嵌入MongoDB文档的构造函数,允许您指定整数数据类型。在MongoDB文档中,可以使用以下内容:

myField: NumberLong("20372")
指定希望“myField”包含64位带符号整数。如果只需要32位有符号整数,则使用:

myField: NumberInt("20372");
您需要解决的是,在将文档文本传递给MongoDB驱动程序之前,如何在PHP脚本中生成该文档文本。还要注意,NumberLong()和numberrint()构造函数采用字符串值,因此,如果您的PHP脚本以字符串形式接收数字数据,则不必首先在PHP中将这些字符串转换为数字类型:当您传递包含NumberLong()和numberrint()的MongoDB文档时,MongoDB将为您执行此操作构造器必须具有必要的驱动程序函数/方法


当然,要了解这是如何工作的,最好在开始对主项目进行全面编辑之前设置一个简单的测试,这样当您继续进行上述编辑时,您就知道要事先进行哪些更改。

MongoDB支持两个可直接嵌入MongoDB文档的构造函数,允许您指定整数数据类型。在MongoDB文档中,可以使用以下内容:

myField: NumberLong("20372")
指定希望“myField”包含64位带符号整数。如果只需要32位有符号整数,则使用:

myField: NumberInt("20372");
您需要解决的是,在将文档文本传递给MongoDB驱动程序之前,如何在PHP脚本中生成该文档文本。还要注意,NumberLong()和numberrint()构造函数采用字符串值,因此,如果您的PHP脚本以字符串形式接收数字数据,则不必首先在PHP中将这些字符串转换为数字类型:当您传递包含NumberLong()和numberrint()的MongoDB文档时,MongoDB将为您执行此操作构造器必须具有必要的驱动程序函数/方法

当然,要了解这是如何工作的,最好在开始对主项目进行全面编辑之前设置一个简单的测试,这样当您继续进行上述编辑时,您就知道要事先进行哪些更改