Laravel 5 属性修改器 - Getter 问题
Laravel 5 Attributes Mutators - Getter issue
我的文章 class 中有以下日期修改器:
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');
}
}
我在创建新文章时使用日期时间选择器将默认值设置为今天的日期,如下所示:
$('#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 小部件中定义的日期将其默认设置。
有人知道如何解决这个问题吗?
更新了修改器如下:
public function getPublishedAtAttribute($value)
{
if (is_null($value))
return null;
else
return Carbon::parse($value)->format('d M Y H:i');
}
我的文章 class 中有以下日期修改器:
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');
}
}
我在创建新文章时使用日期时间选择器将默认值设置为今天的日期,如下所示:
$('#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 小部件中定义的日期将其默认设置。
有人知道如何解决这个问题吗?
更新了修改器如下:
public function getPublishedAtAttribute($value)
{
if (is_null($value))
return null;
else
return Carbon::parse($value)->format('d M Y H:i');
}