37 lines
1.2 KiB
PHP
37 lines
1.2 KiB
PHP
<?php
|
||
// app/model/User.php
|
||
namespace app\model;
|
||
|
||
use MongoDB\Laravel\Eloquent\Model;
|
||
use MongoDB\Laravel\Relations\HasMany; // 若需关联查询(可选)
|
||
|
||
class User extends Model
|
||
{
|
||
// 对应 MongoDB 集合名(默认复数,可自定义)
|
||
protected $collection = 'users';
|
||
|
||
// 主键(MongoDB 默认 _id,无需修改,自动转为字符串)
|
||
protected $primaryKey = '_id';
|
||
|
||
// 主键类型(官方推荐显式声明)
|
||
protected $keyType = 'string';
|
||
|
||
// 允许批量赋值的字段(白名单)
|
||
protected $fillable = ['name', 'age', 'email', 'avatar'];
|
||
|
||
// 自动转换字段类型(ObjectId 转字符串、日期转 Carbon)
|
||
protected $casts = [
|
||
'_id' => 'string',
|
||
'age' => 'integer',
|
||
'created_at' => 'datetime',
|
||
'updated_at' => 'datetime',
|
||
'tags' => 'array', // 支持数组类型(MongoDB 原生支持数组)
|
||
];
|
||
|
||
// 自动维护时间戳(created_at/updated_at,默认启用)
|
||
// 若不需要可关闭:public $timestamps = false;
|
||
|
||
// 自定义时间戳字段名(可选)
|
||
// const CREATED_AT = 'create_time';
|
||
// const UPDATED_AT = 'update_time';
|
||
} |