次のコードがあります:
リーリー$subOffers を返すと、次のような配列が得られます。
リーリーしかし、1 を 2、3、4 などに変更すると、次のようなオブジェクトが得られます。
リーリーこの場合、4 に変更し、n-1 個のキーを取得しました。
これはどうですか?配列ではなくオブジェクトを受け取るのはなぜですか?これは、Offers_id が 1 より大きい場合に発生します。 Offers_id は外部キーです。
P粉1363562872024-01-04 09:37:25
わかりました、解決策を見つけました
リーリーwhere と get
を交換する必要があります。しかし、まだわかりません。何が起こっているのでしょうか?なぜこれが起こっているのか知りたいです。
P粉4045397322024-01-04 09:35:16
eloquent の get() メソッドは Laravel コレクションを返します。つまり、 where() など、その後に置くものは結果のコレクションに影響します。 https://laravel.com/docs/9 を参照してください。 x/collections、コレクションは配列のようなオブジェクトですが、データベース クエリに似た多くの機能を備えていますが、すべてローカル メモリ内にあります。
get() の前に where() メソッドがある場合、データベース クエリを構築していることになり、クエリは get() まで実行されません。クエリの構築メソッドと収集メソッドは同様に機能しますが、実行する操作は異なるため、異なる結果が得られます。