Laravel モデルは時々 Carbon オブジェクトを変換し、配列エラーとして Carbon\Carbon 型のオブジェクトを使用できません
P粉125450549
P粉125450549 2023-08-30 13:56:16
0
1
529
<p>古いコードベースからタイムゾーン変換を行うために文字列操作を行っています。 </p> <p>日付と時刻の間に <code>T</code> を入れる必要があります。これを行うために次のロジックを使用します。 </p> <pre class="brush:php;toolbar:false;">$check_in= $model->checkin_date_time; // 2022-12-12 22:22:22 $check_in[10] = 'T'; // 2022-12-12T22:22:22</pre> <p>何らかの奇妙な理由で、このエラーが発生します。 </p> <pre class="brush:php;toolbar:false;">Carbon\Carbon 型のオブジェクトを配列として使用できません</pre> <p>しかし、常にそうとは限りません。 2000 ~ 3000 リクエストあたりエラーは 1 ~ 2 件のみ。 </p> <p>Carbon を他の場所 (同じ関数の他の部分でも) で使用していますが、<code>checkin_date_time</code> の <code>$model</code> プロパティは変換していません。 </p> <p>なぜ <code>$model->checkin_date_time</code> が Carbon オブジェクトに変換されるのかわかりません。 </p>
P粉125450549
P粉125450549

全員に返信(1)
P粉011684326

$model->checkin_date_time"2022-12-12 22:22:22" ではありません。これは Carbon (DateTime のサブクラス) オブジェクトです。これを文字列に変換しようとすると (echo や任意の種類の表示を使用したり、別の文字列に挿入したりすると、自動的に Y-m-d h:i:s # のようにフォーマットされます。

##他の形式で出力したい場合は、

->format() メソッドを使用してください: リーリー

いずれにしても、文字列内の文字を変更するためにオフセット (

$check_in[10] = 構文) を使用するのは本当に悪い考えであり、このような微細な最適化には価値がありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート