我想用用户模型加载特定的属性:
$user = $user->only(['id', 'user_name', 'created']);
但是created_at获取date_time的对象,如下所示:
{
"id": 1,
"user_name": "foo",
"created_at": {
"date": "2018-12-30 11:34:57.000000",
"timezone_type": 3,
"timezone": "...."
},
}
如何仅使用方法获取created_at的字符串类型?
谢谢
答案 0 :(得分:3)
有多种方法可以实现这一目标。
您可以这样在模型上设置$casts[]
数组:
protected $casts = [
'created_at' => 'string'
];
这意味着,每次您尝试访问created_at
时,它将返回一个字符串表示形式。
或者,您也可以定义Accessor,例如
public function getCreatedAtAttribute()
{
return (string) $this->created_at;
}
但是,我通常不喜欢搞混created_at
和updated_at
属性。所以通常我会做这样的事情:
public function getFormattedCreatedAtAttribute()
{
return $this->created_at->toFormattedDateString();
}
然后在您的特定情况下为:
$user = $user->only(['id', 'user_name', 'formatted_created_at']);
答案 1 :(得分:0)
您可以尝试一下
'create_at' => now();
或 'crated_at'=> Carbon :: now(); 'updated_at'=> Carbon :: now();