2016-10-26 3 views
0

カーボンインスタンスに日付をキャスト:Laravelモデルは、 - そうのようなカーボン日付などのフィールドをキャストすることが可能であるLaravelモデルで

class Example extends Model 
{ 
    protected $casts = [ 
     'date_of_birth' => 'date' 
    ] 
} 

は、しかし、これはまた、そうのように行うことができます。

class Example extends Model 
{ 
    protected $dates= [ 
     'date_of_birth' 
    ] 
} 

違いは何ですか?これを行うための推奨方法は何ですか?

答えて

1

実際には、どちらの場合も、LaravelModel::asDateTimeメソッドを使用します。キャストする場合、例えば、それは、日付の次のコードを使用しています:モデルから属性を取得するとき

// ... 

case 'date': 
case 'datetime': 
    return $this->asDateTime($value); 

はまた、Laravelフレームワークは、日付(モデル:: getAttributeValue)のために、以下のようなものを使用しています。

// ... 

// If the attribute is listed as a date, we will convert it to a DateTime 
// instance on retrieval, which makes it quite convenient to work with 
// date fields without having to create a mutator for each property. 
if (in_array($key, $this->getDates()) && ! is_null($value)) { 
    return $this->asDateTime($value); 
} 

だから違いはありません。適切な方法は?あなたの好み、IMOによって異なります。

関連する問題