Во-первых, я извлекаю все записи,
//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.