Carbon.php Символ разделения не найден. Данные отсутствуют.

Во-первых, я извлекаю все записи,

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

а затем я зацикливаюсь на извлеченных записях и изменяю данные created_at и updated_at, чтобы сделать его более понятной для человека датой.

 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)); } 

но он возвращает мне эту ошибку,

InvalidArgumentException в строке Carbon.php 425: обнаружены неожиданные данные. Получены неожиданные данные. Символ разделения не найден. Данные отсутствуют.

любые идеи, помощь, подсказки, предложения, рекомендации, пожалуйста?

вот моя модель

 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'); } } 

и в лезвии я могу просто использовать

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

и он работает нормально.

Думаю, вы ошибетесь. Данные в вашей базе данных не должны быть более читабельными для человека , а только дисплеем, с которым человек действительно interacts .

Чтобы решить эту проблему, мы создадим пользовательский метод accessor который будет применяться ко всем вызовам для created_at. You can recreate this for the created_at. You can recreate this for the update_at`.

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

Затем, когда вы вызываете $model->created_at ваш атрибут будет возвращаться в этом формате.

Если по какой-то причине вам абсолютно нужна дата, хранящаяся в этом формате, вам нужно добавить в свою модель атрибут, указывающий, что столбцы timestamp должны быть отформатированы в соответствии с определенным типом, например:

 protected $dateFormat = 'M d, Y'; 

Примечание

Причина, по которой Carbon участвует, заключается в том, что она применяется ко всем столбцам, сгенерированным $table->timestamps() , поэтому created_at и updated_at . Furthemore, если вы добавите больше столбцов в модель в protected $dates = [] массив protected $dates = [] , они также будут автоматически обрабатываться Carbon.