我在我的数据库中创建了一些日期时间字段,正如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); }