<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use SoftDeletes;
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Laravel 모델을 둘러보다 $casts 라는 이해 할 수 없는 변수가 있어 찾아 봤다.
출처: https://laravel.com/docs/9.x/eloquent-mutators
"$casts property provides a convenient method of converting attributes to common data types."
영어로 쓰여져 있는 그대로 datetime 같은 common data types를 쉽게 쓸 수 있도록 conversion을 돕는다.
쓸 수 있는 data types는 아래와 같다.
array
AsStringable::class
boolean
collection
date
datetime
immutable_date
immutable_datetime
decimal:<digits>
double
encrypted
encrypted:array
encrypted:collection
encrypted:object
float
integer
object
real
string
timestamp
ps. 참고로 password가 fillable인 동시에 hidden 인 것은 아무래도 처음 만들 때는 fill이 가능 해야 되고 그 이후에는 접근 불가 하게 해야 되니깐...