2016-05-07 11 views
0

Ich habe einfache Spalten "Datum" in meiner Datenbank (Datum). Ich mag mein Datum zu 'd/m/Y' zu formatieren, es funktioniert, aber nicht perfekt das ist mein Modell:Laravel 5.2 - Datumsformatierung, Carbon und Form :: Datum

<?php 

namespace App; 
use Carbon\Carbon; 
use Illuminate\Database\Eloquent\Model; 

class Report extends Model 
{ 
    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'reports'; 

    /** 
    * The database primary key value. 
    * 
    * @var string 
    */ 
    protected $primaryKey = 'id'; 

    /** 
    * Attributes that should be mass-assignable. 
    * 
    * @var array 
    */ 
    protected $fillable = ['title', 'category_id', 'author_id', 'date']; 

    public function category(){ 
     return $this->belongsTo('App\Category'); 
    } 

    public function user() { 
     return $this->belongsTo('App\User', 'author_id'); 
    } 

    public function getDateAttribute($value) 
    { 
     return Carbon::parse($value)->format('d/m/Y'); 
    } 
} 

und in meiner Ansicht:

{!! Form::date('date', \Carbon\Carbon::now()->format('d/m/Y'), 
['class' => 'form-control', 'required' => 'required']) !!} 

Jetzt, auf dem Format erstellen, funktioniert ok, aber nach dem Erstellen des Datensatzes ist der Wert 30/11/-0001 oder 00/00/0000, warum?

mein Controller:

public function store(Request $request) 
{ 
    $this->validate($request, ['title' => 'required', 'date' => 'required']); 

    $user = Auth::user()->id; 
    $report = new Report($request->all()); 
    $report->author_id = $user; 
    $report->save(); 

    Session::flash('flash_message', 'Report added!'); 

    return redirect('dash/reports'); 
} 

Antwort

3

Ich glaube, Sie das Datum in der Datenbank als 'Y-m-d' Format gespeichert werden sollten, nur einen Mutator hinzufügen und in Ihren Accessor explizit sein.

public function getDateAttribute($value) 
{ 
    return Carbon::createFromFormat('Y-m-d', $value)->format('d/m/Y'); 
} 

public function setDateAttribute($value) 
{ 
    $this->attributes['date'] = Carbon::createFromFormat('d/m/Y', $value)->toDateString(); 
} 
+0

jetzt der Fehler ist: Die Trennung Symbol nicht gefunden Unerwartete Daten gefunden werden konnte. Nachlaufende Daten – user0111001101

+0

@ user0111001101 ist was? – PeterPan666

+0

danke Mann, jetzt funktioniert es! – user0111001101