سؤال

لدي تطبيق 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 بند.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top