Laravel 5.5 Models模型常用属性(钱)

温馨提示:
电商项目中与 相关的有小数点的字段一律使用 decimal 类型,而不是 floatdouble,后面两种类型在做小数运算时有可能出现精度丢失的问题,这在电商系统里是绝对不允许出现的

模型常用属性

$fillable = [
    '可批量填充的字段'
];

$guarded = [
    '与上相反'
];

$hidden = [
    '模型转换为数组时应当隐藏的字段'
];

$visable = [
    '与上相反'
];

$appends = [
    '模型转换为数组时应当追加的虚拟字段' // 例如访问器
];

$with = [
    '应当预加载的关联关系',
];

$attributes = [
    '字段名' => '字段默认值'
];

$casts = [
    '字段名' => '自动类型转换的目标类型'
];

$dates = [
    '应当被转换为日期时间的字段'
];

$touches = [
    '模型更新时应当一并更新的关联关系'
];

// 以下为部分扩展包使用的属性

// https://github.com/dwightwatson/validating
$rules = [
    '字段' => '模型自身验证规则'
];

// https://github.com/Askedio/laravel-soft-cascade
$softCascade = [
    '软删除时一并删除的关联'
];

// https://github.com/spatie/eloquent-sortable
$sortable = [
    'order_column_name' => 'order_column',
    'sort_when_creating' => true,
];

// https://github.com/nicolaslopezj/searchable
$searchable = [
    'columns' => [],
    'joins' => [],
];

1. 属性 $casts

$casts 属性提供了一个便利的方法来将数据库字段值转换为常见的数据类型,$casts 属性应是一个数组,且数组的键是那些需要被转换的字段名,值则是你希望转换的数据类型。支持转换的数据类型有 :

  1. integer
  2. real
  3. float
  4. double
  5. string
  6. boolean
  7. object
  8. array
  9. collection
  10. date
  11. datetimetimestamp

例如:

protected $casts = [
    'email_verified' => 'boolean',
];

2. 属性 $dates

/**
 * 表示 last_used_at 字段是一个时间日期类型,在之后的代码中 $this->last_used_at 返回的就是一个时间日期对象
 * (确切说是 Carbon 对象,Carbon 是 Laravel 默认使用的时间日期处理类)。
 * @var array
 */
protected $dates = [
    'last_used_at'
];

3. 属性$timestamps

// 没有 created_at 和 updated_at 字段
public $timestamps = false;
讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!