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

Laravel Eloquentのwhereメソッドはデータベースの最初のレコードの配列のみを返します

次のコードがあります:

リーリー

$subOffers を返すと、次のような配列が得られます。

リーリー

しかし、1 を 2、3、4 などに変更すると、次のようなオブジェクトが得られます。

リーリー

この場合、4 に変更し、n-1 個のキーを取得しました。

これはどうですか?配列ではなくオブジェクトを受け取るのはなぜですか?これは、Offers_id が 1 より大きい場合に発生します。 Offers_id は外部キーです。

P粉966979765P粉966979765264日前465

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

  • P粉136356287

    P粉1363562872024-01-04 09:37:25

    わかりました、解決策を見つけました

    リーリー

    whereget

    を交換する必要があります。

    しかし、まだわかりません。何が起こっているのでしょうか?なぜこれが起こっているのか知りたいです。

    返事
    0
  • P粉404539732

    P粉4045397322024-01-04 09:35:16

    eloquent の get() メソッドは Laravel コレクションを返します。つまり、 where() など、その後に置くものは結果のコレクションに影響します。 https://laravel.com/docs/9 を参照してください。 x/collections、コレクションは配列のようなオブジェクトですが、データベース クエリに似た多くの機能を備えていますが、すべてローカル メモリ内にあります。

    get() の前に where() メソッドがある場合、データベース クエリを構築していることになり、クエリは get() まで実行されません。クエリの構築メソッドと収集メソッドは同様に機能しますが、実行する操作は異なるため、異なる結果が得られます。

    返事
    0
  • キャンセル返事