まず、すべてのレコードを取得し、
//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));
}
しかし、それは私にこのエラーを返します、
Carbon.php行425のInvalidArgumentException:予期しないデータが見つかりました。予期しないデータが見つかりました。分離記号が見つかりませんでしたデータがありません
アイデア、ヘルプ、手がかり、提案、推奨事項はありますか?
こちらが私のモデルです
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
で表示するだけです。
これを解決するために、_created_at
_のすべての呼び出しに適用されるカスタムaccessor
メソッドを作成します。 _updated_at
_に対してこれを再作成できます。
_public function getCreatedAtAttribute($timestamp) {
return Carbon\Carbon::parse($timestamp)->format('M d, Y');
}
_
その後、_$model->created_at
_を呼び出すと、属性はその形式で返されます。
何らかの理由でその形式で保存された日付が絶対に必要な場合は、次のような特定のタイプに従ってtimestamp
列をフォーマットする必要があることを伝える属性をモデルに追加する必要があります。
_protected $dateFormat = 'M d, Y';
_
サイドノート
Carbonが関係する理由は、$table->timestamps()
によって生成されるすべての列に適用されるためです。 _created_at
_および_updated_at
_列。
さらに、モデル内の列を_protected $dates = []
_配列に追加すると、それらも自動的にCarbonによって処理されます。 。