出力の問題
Imagine Breaker
Imagine Breaker 2018-09-06 19:03:16
0
6
1636

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

Imagine Breaker
Imagine Breaker

全員に返信(3)
jesse

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

QQ截图20180907224207.png

いいねを押す +0
  • 返事 スクリーンショットをどのように送信し、どのように操作しましたか? また、ビデオでは、select と all はモデル オブジェクトの配列を返すと述べていませんか?
    Imagine Breaker 著者 2018-09-08 09:35:52
  • 返事 わかりました、逆に申し訳ありません、ありがとう!しかし、写真を挿入するオプションが表示されないので、どうやって写真を挿入しましたか?
    Imagine Breaker 著者 2018-09-08 09:40:13
jesse

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

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

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

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

いいねを押す +0
jesse

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

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 著者 2018-09-07 14:31:41
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート