webentwicklung-frage-antwort-db.com.de

Carbon.php Das Trennungssymbol konnte nicht gefunden werden. Daten fehlen

Zuerst rufe ich alle Datensätze ab,

//get inventory items
$inv = inventory::all();

und dann schleife ich die abgerufenen Datensätze ab und modifiziere die Daten created_at und updated_at, um sie lesbarer zu machen.

foreach($inv as $i){
    $i->created_at = date("M d, Y",strtotime($i->created_at));
    $i->updated_at = date("M d, Y",strtotime($i->updated_at));
}

aber es gibt mir diesen Fehler zurück,

InvalidArgumentException in Carbon.php-Zeile 425: Unerwartete Daten gefunden Unerwartete Daten gefunden. Das Trennungssymbol konnte nicht gefunden werden Daten fehlen

ideen, Hilfe, Hinweise, Vorschläge, Empfehlungen bitte?

hier ist mein modell

namespace App;

use Illuminate\Database\Eloquent\Model;

class inventory extends Model
{
    protected $table = "inventory";
    protected $primaryKey = "item_id";
    public $incrementing = false;

    public function profile(){
        return $this->belongsTo('App\profile','username');
    }
    public function inventory_images(){
        return $this->hasMany('App\inventory_images','item_id');
    }
}

und in Klinge kann ich einfach verwenden

{{ date("M d, Y",strtotime($i->created_at)) }}

{{ date("M d, Y",strtotime($i->updated_at)) }}

und es funktioniert gut.

7
Juliver Galleto

Ich denke, du gehst falsch herum. Die Daten in Ihrer Datenbank müssen nicht besser lesbar sein, sondern nur die Anzeige, mit der ein Mensch tatsächlich interacts ist.

Um dies zu lösen, erstellen wir eine benutzerdefinierte accessor-Methode, die auf alle Aufrufe für created_at. You can recreate this for theupdated_at` angewendet wird.

public function getCreatedAtAttribute($timestamp) {
    return Carbon\Carbon::parse($timestamp)->format('M d, Y');
}

Wenn Sie dann $model->created_at aufrufen, wird Ihr Attribut in diesem Format zurückgegeben.

Wenn Sie aus irgendeinem Grund unbedingt das in diesem Format gespeicherte Datum benötigen, müssen Sie Ihrem Modell ein Attribut hinzufügen, das besagt, dass die timestamp-Spalten nach einem bestimmten Typ formatiert werden sollten, z.

protected $dateFormat = 'M d, Y';

Randnotiz

Der Grund für die Carbon ist, dass sie auf alle Spalten angewendet wird, die von $table->timestamps() generiert werden, also die created_at- und updated_at-Spalten. Wenn Sie dem protected $dates = []-Array weitere Spalten im Modell hinzufügen, werden diese ebenfalls automatisch von Carbon verarbeitet.

3
Ohgodwhy