1

我的文章类中有以下日期变异器:

class Article extends Eloquent{
    protected $dates = ['published_at', 'end_at'];


    public function getPublishedAtAttribute($value)
    {
        return Carbon::parse($value)->format('d M Y H:i');
    }

    public function getEndAtAttribute($value)
    {
        return Carbon::parse($value)->format('d M Y H:i');
    }
}  

在创建新文章时,我使用 datetimepicker 将默认值设置为今天的日期,如下所示:

$('#published_at').datetimepicker({
     showTodayButton: true,
     format: 'D MMM YYYY HH:mm',
     defaultDate: moment().hours(0).minute(0)
}) 

$('#end_at').datetimepicker({
    showTodayButton: true,
    format: 'D MMM YYYY HH:mm',
    defaultDate: moment().add(30, 'days').hours(23).minute(59)
})

在我的表单中,published_at 和 end_at 输入字段如下:

{!! Form::text('published_at', null, ['id' => 'published_at', 'class' => 'form-control']) !!}

{!! Form::text('end_at', null, [ 'id' => 'end_at', 'class' => 'form-control']) !!}

但是,两个输入字段的日期时间都设置为今天的日期时间。我需要将published_at 的日期时间设置为今天午夜的日期,并将end_at 设置为今天日期时间的30 天。日期选择器默认值似乎被日期访问器方法覆盖,如果它是一个编辑操作,这很好。但是在创建新文章时,我需要根据 datetimepicker 小部件中定义的日期将其默认为默认值。

有人知道怎么修这个东西吗?

4

1 回答 1

2

更新了mutator如下:

public function getPublishedAtAttribute($value)
{  
    if (is_null($value))
       return null;
    else
      return Carbon::parse($value)->format('d M Y H:i');
}
于 2015-06-03T16:46:50.723 回答