يحتوي Laravel 4 على العديد من نفس الجدول
سؤال
لدي تطبيق laravel 4 وفي هذا التطبيق أحتاج إلى تحديد نموذج فيما يتعلق بنموذج آخر مرتين ولكن مع التمييز على النوع.
مثال
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver');
}
public function newDrivers(){
return $this->hasMany('Driver');
}
}
وبالتالي فإن العلاقة ستكون car
معرف في driver
جدول، الأمر هو أنه عندما أرغب في الحصول على برامج التشغيل القديمة لسيارة معينة فقط، فإنه يقوم بإرجاع كافة برامج التشغيل من كلتا العلاقتين.
عندما بحثت فيه وجدت أنه نفس الجدول، لذا قمت الآن بتعيين نوع في Driver
نموذج، الآن أريد أن تتم تصفية علاقتي حسب هذا النوع، وبالتالي فإن برامج التشغيل القديمة ستكون فقط برامج تشغيل من نوع برامج التشغيل القديمة وستكون برامج التشغيل الجديدة هي برامج التشغيل التي تحتوي على مجموعة نوع برنامج التشغيل الجديد فقط،
كيف يمكن القيام بذلك في Laravel؟
المحلول
يمكنك تجربة شيء مثل هذا:
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver')->where('type', 'olddrivers');
}
public function newDrivers(){
return $this->hasMany('Driver')->where('type', 'newdrivers');
}
}
يفترض أن لديك type
الحقل كمرشح في قاعدة البيانات الخاصة بك.إذا كنت مخطئا حول type
الحقل ثم قمت فقط بتغيير field
الاسم إلى الاسم الصحيح لأنك حصلت على فكرة كيف يمكنك إضافة عامل تصفية باستخدام where
بند.