Model::find(1)->with('firstModel','SecondModel');
laden wollen, ist nicht wirklich etwas überhaupt zu tun, als with
ist ein neues Builder jetzt, der nicht mit dem Modell verwandt ist, das von find(1)
zurückgegeben wird.
Model::with(....)->find(1);
Würde eifrig laden die Beziehungen.
Model::find(1)->load(...);
Ist faul eifrig laden. Es lädt die Beziehungen zu einer vorhandenen Model-Instanz, die Sie bereits abgerufen haben. (find(1)
gibt eine Model-Instanz zurück, und load
weist sie an, die angegebenen Beziehungen dann zu laden) load
kann auch in Collections verwendet werden, um Beziehungen auf allen enthaltenen Model-Instanzen zu laden. load
ist nützlicher, wenn Sie mit einer Menge von Modellen im Vergleich zu einer einzigen arbeiten, da nur die dynamische Eigenschaft (Lazy Loading, wenn nicht bereits geladen) für eine Beziehung in einem Model dieselben Abfragen ausführen würde. Auf einem Set wird jedes N + 1-Problem entfernt, während sie durchlaufen werden.
Sie können diesen Artikel für weitere Informationen zu diesem Thema lesen.
asklagbox - blog - Eloquent Querying Relations
Ihre Frage hat in der Post http://stackoverflow.com/questions/26005994/laravel-with-method-versus-load-method beantwortet –