2017-08-03 3 views
3

は、私は私のモデルが誕生日を計算することができますするプロパティを日付が、日付は私のフォームにロードされている今とき、私はする必要があります1979-07-17 00:00:00右の出力のようにそれを得る(私はフォーム集団的使用)に変更1979-07-17モデルは、列の日付形式は

protected $dates = ['geburtstag']; 

    public function age() 
    { 
     return $this->geburtstag->diffInYears(Carbon::now()); 
    } 

私は

protected $geburtstagFormat = 'Y-m-d';

のようなモデルから変更しようとしたが、助けにはなりませんでした。

私はこのケースでは、間違った何

答えて

1

なぜ$model->geburtstag->format('Y-m-d')を使用しないのですか?

また、のようなモデルでmutarorを作成することができます。

public function getGeburstagDateAttribute($value) { 
    return $this->geburtstag->format('Y-m-d'); 
} 

とこのようにそれを使用します。モデル内protected $dateFormat = 'Y-m-d';を使用し、モデル内の日付形式を設定するには

$model->geburtstag_date // outputs geburtstag date in 'Y-m-d' format 

1

あなたが次に まずます$ this-> geburtstag-> diffInYears(カーボン::今())

$createdAt = Carbon::parse($this->geburtstag->diffInYears(Carbon::now())); 

を解析し、それをすることができます行うための別の方法あなたが出産の時間を保存したくない場合は、dateに代わりのからデータベース内のデータ・タイプを変更する必要があり

$suborder['payment_date'] = $createdAt->format('M d Y'); 
1

を使用210またはdatetime。これにより、ビューで属性を呼び出すと、データベースに表示されている方法が正確に抽出されるため、問題は自動的に解決されます。

public function getGeburstag($value){ 
     return Carbon::parse($value)->toDateString(); 
    } 

これはY-m-d形式でその値にgeburtag属性の元の値に置き換えられます:あなたは変わらないデータベースを維持したい場合はそうでない場合、あなたはこのように、あなたのモデルにミューテータを定義する必要があります。

+0

私はフィールドを日付として持っていて、提案されたミューテータは私の場合は機能しません – fefe