في Laravel 5.2، لا يمكنك استخدام طريقة with
لتحميل العلاقات وتعيين أسماء مختلفة لها مباشرة. بدلاً من ذلك، يمكنك استخدام الاستعلامات المخصصة للعلاقات المعقدة لتحميل العلاقات وتعيين الأسماء التي تريدها.
في حالتك، إذا كان لديك جدول documents
يحتوي على سجلات يمكن أن تكون من نوع product
أو categories
، يمكنك استخدام الاستعلامات المخصصة للعلاقات لتحميل العلاقات بأسماء مختلفة. على سبيل المثال، يمكنك استخدام الاستعلام التالي:
-
فحص وجود قيم في مصفوفة باستخدام Laravel وPHP04/02/2024
-
توليد UUID في Laravel06/03/2024
php$documents = Document::with(['product' => function($query) {
$query->select('id', 'name'); // تحميل العلاقة 'product' واختيار الحقول المطلوبة
}, 'categories' => function($query) {
$query->select('id', 'name'); // تحميل العلاقة 'categories' واختيار الحقول المطلوبة
}])->get();
بهذا الشكل، يمكنك الآن الوصول إلى الوثائق بواسطة اسم الوثيقة بدلاً من نوعها الحقيقي. على سبيل المثال، إذا كان لديك وثيقة تسمى “Product A”، يمكنك الوصول إليها باستخدام $document->product
بدلاً من $document->documents
، وهكذا.
يرجى ملاحظة أنه يجب تعديل الاستعلام حسب هيكل جدول البيانات الخاص بك والعلاقات الفعلية بين الجداول.
المزيد من المعلومات
في Laravel، يمكنك استخدام الاستعلامات المخصصة للعلاقات لتحميل العلاقات بأسماء مختلفة عن اسم العلاقة نفسها. عند استخدام الاستعلامات المخصصة، يمكنك تحميل العلاقات وتحديد الحقول التي ترغب في استرجاعها. هذا يساعد في جعل البيانات أكثر وضوحًا وسهولة في الوصول إليها.
في حالة وجود جدول documents
يحتوي على سجلات من نوع product
أو categories
، يمكنك استخدام الاستعلامات المخصصة لتحميل العلاقات بهذه الطريقة:
php$documents = Document::with(['product as document_product' => function($query) {
$query->select('id', 'name'); // تحميل العلاقة 'product' واختيار الحقول المطلوبة
}, 'categories as document_categories' => function($query) {
$query->select('id', 'name'); // تحميل العلاقة 'categories' واختيار الحقول المطلوبة
}])->get();
بهذا الشكل، يمكنك الآن الوصول إلى الوثائق بواسطة اسم الوثيقة المخصص، على سبيل المثال $document->document_product
أو $document->document_categories
.