我试图在从数据库获取字段时设置一个字段,但相应的访问器不起作用。它根本不执行。
我的代码如下:
迁移:
public function up(){
Schema::table('users',function(Blueprint $table){
$table->time('start_working_time')->nullable();
});
}
型号:
protected $fillable = [...,'start_working_time'];
protected $casts = [
'start_working_time' => 'datetime:H:i',
];
protected $appends = ['start_working_time'];
public function getStartWorkingTimeAttribute($date){
return Carbon::createFromFormat('H:i:s',$date)->format('H:i');
}
我尝试过的:
但是这些方法都不起作用。
请问有什么想法吗?
$appends
属性用于将新的计算属性附加到模型的数组/JSON 形式,而不是现有列。由于 start_working_time
是数据库中的实际列,因此您不应将其列出在 $appends
中。从 start_working_time
数组中删除 $appends
。start_working_time
转换为日期时间,Laravel 已经将其作为 Carbon 实例返回。因此,在您的访问器中,您不需要创建另一个 Carbon 实例。您可以简单地格式化它:public function getStartWorkingTimeAttribute($date){
return $date->format('H:i');
}