検索

ホームページ  >  に質問  >  本文

Laravel モデルは時々 Carbon オブジェクトを変換し、配列エラーとして Carbon\Carbon 型のオブジェクトを使用できません

<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粉125450549P粉125450549511日前554

全員に返信(1)返信します

  • P粉011684326

    P粉0116843262023-08-31 09:37:41

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

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

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

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

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

    返事
    0
  • キャンセル返事