加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 如何在Laravel中自定义日期变更器?

发布时间:2020-12-14 19:36:44 所属栏目:大数据 来源:网络整理
导读:我在我的数据库中创建了一些日期时间字段,正如Laravel文档中所述,我可以“自定义哪些字段会自动变异”.然而,没有示例显示如何完成,也没有任何搜索结果.我应该怎么做才能使某些字段自动变异? 例如,我在迁移中创建了一个名为“people”的表,其中一个字段定义
我在我的数据库中创建了一些日期时间字段,正如Laravel文档中所述,我可以“自定义哪些字段会自动变异”.然而,没有示例显示如何完成,也没有任何搜索结果.我应该怎么做才能使某些字段自动变异?

例如,我在迁移中创建了一个名为“people”的表,其中一个字段定义如下:

class CreatePeopleTable extends Migration {
  public function up(){
    Schema::create("bookings",function($table){
      ...
      $table->dateTime("birthday");
      ...
    }
  }
}

我在模型中为“人”定义了一个模型:

class People extends Eloquent{
  //nothing here
}

如果我引用People实例的生日,它将是字符串,而不是DateTime

$one=People::find(1);
var_dump($one->birthday);
//String

日期变更器应该能够将它直接转换为Carbon对象,但是文档并没有说明应该如何实现它.

解决方法

在您的People模型中,只需添加此数组:

protected $dates = array('birthday');

Laravel的Model.php internaly将您的字段与默认字段合并,如下所示:

/**
     * Get the attributes that should be converted to dates.
     *
     * @return array
     */
    public function getDates()
    {
        $defaults = array(static::CREATED_AT,static::UPDATED_AT,static::DELETED_AT);

        return array_merge($this->dates,$defaults);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读