اذهب إلى المحتوى
  • 0

كيف يمكن إسناد أكثر من relationships لجدولين في Laravel

mouad boulahdoud

السؤال

السلام عليكم 

أقوم ببناء موقع بواسطة Laravel 5.6 يقوم بإدارة الأفلام بحيث أن المستخدم يمكن له ان يقوم بإضافة أفلام الى قائمة "المشاهدة لاحقا" و أيضا إضافتها الى قائمة الافلام التي أعجبته.

قمة بعمل جدول users و movies في قاعدة البيانات بالإضافة الى جدول الخاص بقائمة المشاهدة لاحقا و أسميته 'warches' و الذي يقوم بربط المستخدم بالافلام التي وضعها في القائمة

بعدها قمت بإضافة دالة اسمها movies في مودل User

// User Model
public function movies(){
	return $this->belongsToMany('App\Movie', 'watches');
}

و داله إسمها users في مودل Movie

// Movie Model
public function users(){
	return $this->belongsToMany('App\User', 'watches');
}

العلاقة هي belongsToMany لان المستخدم يمكن ان يعمل إعجاب لعدد كثير من الافلام و كذلك الافلام يمكن ان يعجب بها عدد كبير من المستخدمين

بالنسبة لي الاعجاب فقد أنشأت جدول في قاعدة البيانات مثل جدول watches أسميته favorites (أفترض ان العلاقة ستكون هي الاخرى belongsToMany) بالنسبة للادخال و المسح فهي تعمل بشكل جيد و كذلك قائمة المشاهدة لاحقا, ولكن المشكل بالنسبة لي هو كيف أضيف علاقة تربط بين المستخدم و الافلام التي تعجبه ,بحيت يعطيني قائمة الافلام التي يعمل لها إعجاب.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

السلام عليكم
الأمر بسيط تماماً

بداية بالنسبة لي فأنا أتبع طريقة تساعد على التعامل مع العلاقة من النوع الذي تريده بشكل أفضل وذلك بتسمية العلاقة باسم يعبر عنها. أنت استخدمت movies كاسم للعلاقة مع أن لديك علاقتين مختلفتين تربط مابين المستخدم والأفلام وهذا ماسبب لك الارتباك
بالنسبة للعلاقة بين المستخدم والأفلام هناك علاقتين : أفلام أشاهدها لاحقاً و أفلام تعجبني

 

// User Model -> movies to watch later
public function watchLaterMovies(){
	return $this->belongsToMany('App\Movie', 'watches');
}

// User Model -> favorites movies
public function favoriteMovies(){
	return $this->belongsToMany('App\Movie', 'favorites');
}

 

في العلاقة الأولى يتم جلب الأفلام من جدول الأفلام  عبر الجدول الوسيط watches
بينما في العلاقة الثانية يتم جلب الأفلام من جدول الأفلام عبر الجدول الوسيط favorites

تم التعديل في بواسطة Nael Saeed
إضافة مزيد من التوضيح عن سبب طرحي لفكرة تغيير تسمية العلاقة
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 22/10/2018 at 17:49 قال Nael Saeed:

السلام عليكم
الأمر بسيط تماماً

بداية بالنسبة لي فأنا أتبع طريقة تساعد على التعامل مع العلاقة من النوع الذي تريده بشكل أفضل وذلك بتسمية العلاقة باسم يعبر عنها. أنت استخدمت movies كاسم للعلاقة مع أن لديك علاقتين مختلفتين تربط مابين المستخدم والأفلام وهذا ماسبب لك الارتباك
بالنسبة للعلاقة بين المستخدم والأفلام هناك علاقتين : أفلام أشاهدها لاحقاً و أفلام تعجبني

 


// User Model -> movies to watch later
public function watchLaterMovies(){
	return $this->belongsToMany('App\Movie', 'watches');
}

// User Model -> favorites movies
public function favoriteMovies(){
	return $this->belongsToMany('App\Movie', 'favorites');
}

 

في العلاقة الأولى يتم جلب الأفلام من جدول الأفلام  عبر الجدول الوسيط watches
بينما في العلاقة الثانية يتم جلب الأفلام من جدول الأفلام عبر الجدول الوسيط favorites

شكرا لكم

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

Moviebox Pro Apk - TV Show & Box Office Movies هو تطبيق يتيح لك اكتشاف أفلام رائعة ، وإصدارات جديدة يتم افتتاحها هذا الأسبوع أو أفلام جديدة قادمة ستُعرض قريبًا في دور السينما. جميع المعلومات المطلوبة مثل الملخص والممثلين والبرنامج التلفزيوني الرائج ومقطورة الفيلم في شباك التذاكر.

عرض بيانات الفيلم والبرنامج التلفزيوني

Movie Box هو الخيار الأفضل للبحث عن أحدث توصيات شباك التذاكر. يتيح البحث على الأرجح الفيلم مع هذه التطبيقات البسيطة. تعتبر هذه التطبيقات أداة للتعرف أولاً على برنامج تلفزيوني وفيلم شباك التذاكر والممثلة والميزانية وأي فيلم بيانات مهم آخر هذا اليوم أو هذا الأسبوع. كل المعلومات حول أفلام الصندوق الجديدة المفضلة لديك القادمة.

يمكنك أيضًا معرفة أفضل الأفلام تقييمًا حسب السنة أو النوع أو أكثر الأفلام التي تم تنزيلها اليوم مع العديد من الأنواع: عرض أفلام جديدة ، عرض أفلام عالية الدقة ، عرض أفلام الحركة ، عرض أفلام الرسوم المتحركة ، عرض السيف ، عرض الدراما التاريخية ، عرض سينما كوميديا ، دراما تلفزيونية.

عندما تحتاج إلى توصيات فيلم أو تتساءل عما تريد مشاهدته بعد ذلك ، اقترح أفلامًا مجانية هو كل ما تحتاجه ومعرفة متى تأكل الفشار مع مشاهدة فيلم عالي الدقة لأن معرفة الوقت الصحيح لفيلمك المفضل يلعب الآن استوديو شباك التذاكر.

سمات:

** تصميم بسيط وحديث.
** الوقت الحقيقي حول أحدث برنامج تلفزيوني ، فيلم شباك التذاكر
** كل ما تحتاجه من معلومات كاملة مع فيلم أو برنامج تلفزيوني
** ابحث لإظهار فيلم HD المفضل في قوائم التشغيل لدينا.
** البحث عن طريق العنوان / الكلمة الرئيسية
** اقرأ المراجعات من المستخدمين الآخرين.
** المقاطع الدعائية والأفلام التشويقية الرسمية.

لقد جعل فريقنا هذه التطبيقات "Movie Box - Tv Show & Box Office" خاصة لمحبي الأفلام ، ونحن نخصصها لأولئك منكم الذين يريدون دائمًا أن يكونوا الجمهور الأول عندما يكون هناك إصدار جديد لفيلم. كلكم متشابهون معنا.

هذا التطبيق ليس ولن يكون أبدًا إلى الأبد محتوى لتدفق الأفلام أو تنزيل الفيديو ، لا يمكنك السماح بتنزيل الفيديو أو الصورة أو أي شيء.

تنصل :

- لا يقوم برنامج TV Show & Box Office Movies ببث تطبيقات مجانية للأفلام عبر الإنترنت أو تطبيق تنزيل الأفلام ، ويستخدم هذا التطبيق فقط ويعرض واجهة برمجة تطبيقات TMDB للحصول على معلومات حيث لا ينتهك هذا شروط الخدمة TMDB ، ولكن هذا التطبيق غير معتمد أو معتمد من قبل The قاعدة بيانات الفيلم.

- لا تعرض البرامج التلفزيونية وأفلام Box Office الأفلام مباشرة أو لا تسمح بتنزيل الفيلم. يتبع تطبيقنا إرشادات "الاستخدام العادل" بموجب قانون الولايات المتحدة ، إذا كنت تشعر أن هناك انتهاكًا مباشرًا لحقوق الطبع والنشر أو انتهاكًا للعلامة التجارية لا يتبع ضمن إرشادات "الاستخدام العادل" ، فيرجى الاتصال بنا مباشرةً.

حول برنامج TV Show & Box Office Movies API ، يرجى قراءة شروط خدمة TMDB Api على https://www.themoviedb.org/documentation/api/terms-of-use. هذه الخدمات مرخصة بموجب CC

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...