$fillable 和 $guarded 两个属性是用来控制批量赋值的,批量赋值是什么意思?并不是数据填充,一次填充到数据库 N 条记录的概念,这里(在讲 $fillable 和 $guarded)所谓的批量赋值仅是指在创建记录的时候传入的属性值。所谓的批量是相对于 N 个请求来说的批量。

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

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

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

/uploads/images/seo.jpgisable = [
    '与上相反'
];

$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 属性应是一个数组,且数组的键是那些需要被转换的字段名,值则是你希望转换的数据类型。支持转换的数据类型有 :

integer,
real,
float,
double,
string,
boolean,
object,
array,
collection,
date,
datetime 和 timestamp。
例如:

protected $casts = [
    'email_verified' => 'boolean',
];
  1. 属性 $dates

/**

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

*/

protected $dates = [
    'last_used_at'
];
  1. 属性$timestamps

// 没有 created_at 和 updated_at 字段

public $timestamps = false;
长沙网站建设|开发|制作|技术-吾爱云端
请先登录后发表评论
  • latest comments
  • others.comment_count