<?php
namespace App\Models\Mongodb;
use Illuminate\Database\Eloquent\Model;
//use Moloquent; //monogo
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\SoftDeletes;
class MyTestTable extends Model
{
use SoftDeletes;
protected $collection = 'tobacco'; // 约定稳定名 monogo 用法·
protected $primaryKey = '_id'; // 设置主键字段 monogo 用法·
protected $table = 'articles'; // 约定模型映射表名 mongo 如上
public $incrementing = false; // 设置主键不是自增 mysql有用 mongo 不知道
protected $keyType = 'string'; // 设置逐渐类型
public $timestamps = false; // 设置时间
protected $dateFormat = 'U'; // 默认时间戳格式 Unix时间戳
protected $connection = 'name'; // 默认链接名称
protected $appends = []; // 追加字段
protected $fillable = []; // 定义字段白名单,允许操作表中的哪些字段
protected $guarded = []; // 1、使用model::create([])等方法直接对orm对象操作使,必须定义$guarded或者$fillable 2、使用$m = new model();然后$m->save()的方式不需要定义 3、简便的方式就是定义$fillable = [];
protected $hidden = []; // 定义查询结果隐藏那些字段
const CREATED_AT = 'created'; // 定义数据行创建时间和修改时间的字段名称。默认created_at,updated_at, 没有设null 如 const UPDATED_AT = null;
/* 把ORM查询的数据自动转换。例如把int转boolean,时间戳转时间,json转成数组等。*/
protected $casts = [
'created' => 'date:Y-m-d',
'updated' => 'datetime:Y-m-d H:i',
'jsonData' => 'array',
'intSwitch' => 'boolean',
'id' => 'int'
];
/*这里只能是created_at,updated_at,不是你自己的字段*/
public function getDates(){
return ['created_at'];
}
/*软删除字段deleted_at*/
//use Illuminate\Database\Eloquent\SoftDeletes;
// protected $dates = ['deleted_at'];
// 查询数据时会自动排除掉deleted_at非null的数据,若向带上使用User::withTrashed()
// 删除某条数据时使用$user->delete()然后save()即可。deleted_at由null变为时间.
protected function getMyNameArrtibute()
{
return 'MT';
}
public static function getAll()
{
}
public function many()
{
// 一对多 - Post::comments()
return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
}
}