$result = Staff::select($where) の直後に、配列 foreach ($result as $value) を走査する代わりに ($result->getData()) を直接ダンプできないのはなぜですか
jesse2018-09-07 14:49:33
この問題については、まだ議論すべき点がいくつかあります:
1. データはデータ属性に存在するので、オブジェクトを走査するときにそれがデータ属性であることをどのように判断してデータセットを削除するか?
2.が単なる Model オブジェクトである場合、Collection オブジェクトはそれをどのように実装しますか?
ArrayAccess は、これら 2 つの問題が発生したときに表示されるはずです。オブジェクト トラバーサルの基本的な動作メカニズムを理解できるように、夕方に戻ったときに更新します。
jesse2018-09-07 14:27:18
まず公式マニュアルの手順を読んでください:
次に、基礎となるソースコードを見てください:
公式マニュアルでは多くの詳細が隠蔽され、直接説明されています結果
最後の質問ですが、なぜ返された結果をトラバースできるのでしょうか?
Model クラスと Collection クラスはどちらも同じ ArrayAccess インターフェイスを実装しているため、配列にアクセスするのと同じようにオブジェクト内のプロパティにアクセスできます。