検索

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

出力の問題

$result = Staff::select($where) の直後に、配列 foreach ($result as $value) を走査する代わりに ($result->getData()) を直接ダンプできないのはなぜですか

Imagine BreakerImagine Breaker2275日前1639

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

  • jesse

    jesse2018-09-07 22:40:57

    まず、公式のスクリーンショットを撮って、基礎となるソースコード分析が正しいことを確認してください:

    QQ截图20180907224207.png

    返事
    0
  • Imagine Breaker

    スクリーンショットをどのように送信し、どのように操作しましたか? また、ビデオでは、select と all はモデル オブジェクトの配列を返すと述べていませんか?

    Imagine Breaker · 2018-09-08 09:35:52
    Imagine Breaker

    わかりました、逆に申し訳ありません、ありがとう!しかし、写真を挿入するオプションが表示されないので、どうやって写真を挿入しましたか?

    Imagine Breaker · 2018-09-08 09:40:13
  • jesse

    jesse2018-09-07 14:49:33

    この問題については、まだ議論すべき点がいくつかあります:

    1. データはデータ属性に存在するので、オブジェクトを走査するときにそれがデータ属性であることをどのように判断してデータセットを削除するか?

    2.が単なる Model オブジェクトである場合、Collection オブジェクトはそれをどのように実装しますか?

    ArrayAccess は、これら 2 つの問題が発生したときに表示されるはずです。オブジェクト トラバーサルの基本的な動作メカニズムを理解できるように、夕方に戻ったときに更新します。

    返事
    0
  • jesse

    jesse2018-09-07 14:27:18

    まず公式マニュアルの手順を読んでください:

    QQ截图20180907141025.jpg

    次に、基礎となるソースコードを見てください:

    QQ截图20180907141312.jpg

    QQ截图20180907141700.jpg

    QQ图片20180907141926.png

    公式マニュアルでは多くの詳細が隠蔽され、直接説明されています結果QQ截图20180907142024.jpg

    QQ截图20180907142220.jpg

    最後の質問ですが、なぜ返された結果をトラバースできるのでしょうか?

    QQ截图20180907142316.jpg

    QQ截图20180907142514.jpgModel クラスと Collection クラスはどちらも同じ ArrayAccess インターフェイスを実装しているため、配列にアクセスするのと同じようにオブジェクト内のプロパティにアクセスできます。

    返事
    0
  • jesse

    返される結果セットはオブジェクトであるため、内部属性の値は配列の走査を通じて取得する必要があります。データ属性はデータベース クエリの結果セットです。

    jesse · 2018-09-07 14:31:41
  • キャンセル返事