Laravel5.4模型属性详解

本文详细探讨了Laravel5.4框架中模型的属性,包括$table用于指定数据库表名,$fillable与$guarded控制批量赋值,$hidden用于隐藏数组或JSON输出的字段,$dates允许日期字段使用Carbon类,$attributes用于默认字段赋值,以及$timestamps管理自动更新时间戳。
摘要由CSDN通过智能技术生成

这里写图片描述
首先以App\User模型为例
1、$table属性
表名,对应数据库中的表名
2、 fillable guarded)属性
fillable guarded属性都是laravel的批量赋值方法create()的, fillablecreate() guarded表示在create()方法中不能被赋值的字段
3、$hidden属性
$hidden属性可以隐藏字段,使其不出现在数组或者json格式中。

       $user = Auth::user();
       dump($user);exit;

输出结果为:
#attributes: array:13 [▼
"id" => 1
"name" => "admin"
"email" => ""
"description" => "超级管理员"
"password" => "$2y$10$ib2n.ZbZFvZdt7S8N.9tKuON8QzedokbHOyxMX/7m9Iz66YBCHqyy"
"remember_token" => "fTldAutDKCRGRpKvwVtYyDsdi79A1loGlwJBBgHGJSK6ih26pFdo5qvfN8VG"
"status" => "NORMAL"
"assigned_rate" => 0
"supplier_id" => 0
"agency_id" => 12
"deleted_at" => null
"created_at" => "2015-11-02 05:13:17"
"updated_at" => "2017-03-24 09:35:05"

转换数组:

      $user = Auth::user()->toArray();
      dump($user);exit;

结果为:

array:11 [▼
  "id" => 1
  "name" => "admin"
  "email" => ""
  "description" => "超级管理员"
  "status" => "NORMAL"
  "assigned_rate" => 0
  "supplier_id" => 0
  "agency_id" => 12
  "deleted_at" => null
  "created_at" => "2015-11-02 05:13:17"
  "updated_at" => "2017-03-24 09:35:05"
]

转换成JSON格式:

       $user = Auth::user()->toJson();
       dump($user);exit;

输出结果为:

"{"id":1,"name":"admin","email":"mhltlyc@qq.com","description":"\u8d85\u7ea7\u7ba1\u7406\u5458","status":"NORMAL","assigned_rate":0,"supplier_id":0,"agency_id":12,"deleted_at":null,"created_at":"2015-11-02 05:13:17","updated_at":"2017-03-24 09:35:05"}"

可见hidden属性的作用

4、$dates属性
$dates属性里面包含的字段可以直接后面跟carbon类时间操作的任何方法,例如一个模型:

class User extends Model{
    /**
     * 应该被调整为日期的属性
     *
     * @var array
     */
    protected $dates = ['created_at', 'updated_at', 'disabled_at'];
}
$user = App\User::find(1);
return $user->disabled_at->getTimestamp();

5、$attributes属性
默认给数据库里的一个字段赋值

  protected $attributes = [
    'user_limit' => 100,
  ];

默认给这个模型表的user_limit字段赋上100的值
6、$timestamps属性
laravel默认会在create()创建数据的时候,将created_at字段更新,如果是进行修改操作,将会更新updated_at属性里面的值
如果将

public $timestamps = false;

则create方法执行时,不会修改对应的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值