سؤال

ولقد حصلت على مجموعة من القيم أريد تحديث طراز بي مع.

وDoctrine_Access يوفر setArray وظيفة وهو بالضبط تقريبا ما أحتاج - إلا أنه يهتم القيم التي لم يكن لديك الحقول في النموذج. أريد تلك لا يمكن تجاهله.

وثمة مثال صغير. نقول لدينا طاولة العضو مع اسم المستخدم المجال.

$user = new User();
$user->setArray(array('username'=>'xyz'))->save();

وهذا من شأنه أن يعمل!

$user = new User();
$user->setArray(array('username'=>'xyz','anotherKey'=>'anotherValue'))->save();

وهذا لا. أريد العقيدة إلى مجرد تجاهل anotherKey، إذا لم يكن هناك مجال آخر ذي صلة. والقصد من ذلك هو أن لا أريد لتصفية صفائف بلدي قبل أن تحديث طراز بي.

ما هو أنظف وأسهل طريقة للحصول على ذلك؟

هل كانت مفيدة؟

المحلول

وDoctrine_Record :: fromArray () يحل. لسوء الحظ فإنه لا يرجع الكائن، لذلك فمن غير مجدية لطريقة تسلسل ...

نصائح أخرى

وهذا أمر مفيد

وإضافة طريقة العثور على نموذج:

class Address extends Doctrine_Record {

    public static function factory() {
        return new Address();
    }

public function findById($id) {
       $findObject = Doctrine::getTable('Address')->findOneByid($id);
       return $findObject;
     }
....

واستخدامه

  $address = Address::factory()
        ->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top