Tout d'abord, je récupère tous les enregistrements,
//get inventory items
$inv = inventory::all();
puis je boucle sur les enregistrements récupérés et modifie les données created_at et updated_at pour les rendre plus lisibles par l'homme.
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));
}
mais cela me renvoie cette erreur,
InvalidArgumentException dans Carbon.php, ligne 425: données inattendues a trouvé. Données inattendues trouvées. Le symbole de séparation est introuvable Données manquantes
des idées, aide, indices, suggestions, recommandations s'il vous plaît?
voici mon modèle
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');
}
}
et dans la lame, je peux juste utiliser
{{ date("M d, Y",strtotime($i->created_at)) }}
{{ date("M d, Y",strtotime($i->updated_at)) }}
et ça marche très bien.
Je pense que tu t'y prends mal. Les données de votre base de données n'ont pas besoin d'être plus lisibles par l'homme, mais uniquement par l'affichage qu'un humain interacts
avec.
Pour résoudre ce problème, nous allons créer une méthode accessor
personnalisée qui s'appliquera à tous les appels pour le created_at. You can recreate this for the
updated_at`.
public function getCreatedAtAttribute($timestamp) {
return Carbon\Carbon::parse($timestamp)->format('M d, Y');
}
Ensuite, lorsque vous appelez $model->created_at
, votre attribut retourne dans ce format.
Si, pour une raison quelconque, vous avez absolument besoin de la date stockée dans ce format, vous devez ajouter un attribut à votre modèle, lui indiquant que les colonnes timestamp
doivent être formatées selon un type spécifique, tel que:
protected $dateFormat = 'M d, Y';
Sidenote
La raison pour laquelle Carbon
est impliqué est qu'elle est appliquée à toutes les colonnes générées par $table->timestamps()
, donc les colonnes created_at
et updated_at
. De plus, si vous ajoutez plus de colonnes du modèle au tableau protected $dates = []
, celles-ci seront également gérées automatiquement par Carbon.