Laravel Eloquent 列キャストをコレクションに更新する方法
P粉741678385
P粉741678385 2024-03-30 09:54:00
0
2
349

Laravel10を使用しています。

私は次の方法で JSON 列の変換を利用します:

リーリー

たとえば、コレクション内の値を直接更新しようとする場合:

リーリー ###応答なし。

変数をそのまま代入すると正常に動作します。

リーリー

しかし、単一の要素のみを更新/追加する必要がある場合はどうすればよいでしょうか?

次の回避策を見つけましたが、これは予期された動作ですか?

リーリー

この場合、直接割り当てのみが機能しているようで、コレクションのキャストはその書き込み機能をサポートしていないようです。

P粉741678385
P粉741678385

全員に返信(2)
P粉019353247

コレクションに変換してみます AsCollection

リーリー
いいねを押す +0
P粉668113768

ソリューション (Laravel 8.28 以降)

'collection' の代わりに Illuminate\Database\ Eloquent\Casts\AsCollection を使用する必要があります。

$casts 配列では、各キーのタイプを定義できます。 Laravel は、(必要に応じて) 型のクラスを指定することにより、変換を自動的に処理します。そのため、特に AsCollection::class を使用することが必要です。

リーリー ###詳しくは###
    プロパティ変換 (変換リスト)
  • - Laravel ドキュメント (10.x)
  • 配列、オブジェクト、およびコレクションの変換
  • - Laravel ドキュメント (10.x)
  • Laravel 8 に新しい変換が追加されました
  • - Laravel ニュース
  • AsCollection::class - Laravel API ドキュメント



解決策 (Laravel 7.x 以前)

AsCollection

Laravel 8.x 以降ではデフォルトで利用可能です。 古いバージョンのセット機能が必要な場合は、カスタム キャスト を自分で作成する必要があります。 または、

'array'Actor: を使用することもできます。 リーリー ###詳しくは###

カスタム変換を実行する方法
- Laravel ドキュメント (7.x)
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!