Amir Alsaeed نشر 23 مارس 2021 أرسل تقرير نشر 23 مارس 2021 لقد قمت باستخدام with مع الاستعلامات في بعض الاستعلامات ضمن مشروعي: $books = Book::with('author:id,name')->get(); ولكن في التوثيق الرسمي لاحظت وجود تابع آخر له نتيجة مشابهة: use App\Models\Book; $books = Book::all(); if ($someCondition) { $books->load('author', 'publisher'); } فما الفرق بين with و load. ومتى يتم استخدام كل منها؟ اقتباس
0 Sam Ahw نشر 23 مارس 2021 أرسل تقرير نشر 23 مارس 2021 العمليتين load و with متشابهتين وستحصل على نفس النتيجة فلا يوجد فارق بالنتيجة النهائية لكل منها. ولكن الفرق الوحيد هو بترتيب التنفيذ عند استخدامها: فعند استخدام with يتم أولاً تحميل المودل المرتبط عند تهيئة الاستعلام المراد تنفيذه (مثل: all أو first أو find...) $users = User::with('comments')->get(); كأننا نقوم بتنفيذ: select * from `users` select * from `comments` where `comments`.`user_id` in (1, 2, 3, 4, 5) أما عند استخدام load يتم أولاً تهيئة الاستعلام والحصول على السجلات، ثم يتم بعدها تحميل سجلات المودل المرتبطة بها. بحيث يتم تقسيمها إلى مرحلتين: $users = User::all(); كأننا نقوم باستعلام عادي select * from `users` ثم يتم تنفيذ: $users = $users->load('comments'); والتي تقوم بدورها بتنفيذ استعلام آخر منفصل select * from `comments` where `comments`.`user_id` in (1, 2, 3, 4, 5) 1 1 اقتباس
السؤال
Amir Alsaeed
لقد قمت باستخدام with مع الاستعلامات في بعض الاستعلامات ضمن مشروعي:
$books = Book::with('author:id,name')->get();
ولكن في التوثيق الرسمي لاحظت وجود تابع آخر له نتيجة مشابهة:
use App\Models\Book; $books = Book::all(); if ($someCondition) { $books->load('author', 'publisher'); }
فما الفرق بين with و load. ومتى يتم استخدام كل منها؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.