البرمجة

تحميل العلاقات بأسماء مختلفة في Laravel

في Laravel 5.2، لا يمكنك استخدام طريقة with لتحميل العلاقات وتعيين أسماء مختلفة لها مباشرة. بدلاً من ذلك، يمكنك استخدام الاستعلامات المخصصة للعلاقات المعقدة لتحميل العلاقات وتعيين الأسماء التي تريدها.

في حالتك، إذا كان لديك جدول documents يحتوي على سجلات يمكن أن تكون من نوع product أو categories، يمكنك استخدام الاستعلامات المخصصة للعلاقات لتحميل العلاقات بأسماء مختلفة. على سبيل المثال، يمكنك استخدام الاستعلام التالي:

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.

زر الذهاب إلى الأعلى