Doctrine_Record bir Doctrine_Template ile yöntemini onaylamak Override

0 Cevap php

veri formu yönetmek için benim Symfony projede yeni bir strateji kullanmak istiyorum.

Ben Symfony Form nesnesini kullanmak istemiyorum, ama ben onları inşa etmek modelini kullanmak istiyorum.

Ben Taban Doctrine_Record sınıfını redeclare istemiyorum, bu yüzden yeni bir Doctrine_Template yazdı: ExtendedModel.

ExtendeModel şablonda ben yeni nesneleri ve yöntemleri var, ama ben Doctrine_Record bir doğrulama () işlevi geçersiz kılmak gerekir.

Ben denedim

class ExtendedModel extends Doctrine_Template {

[...]

public $validatorSchema;

public function setValidatorSchema(sfValidatorSchema $validatorSchema) {
    $this->validatorSchema = $validatorSchema;
}

public function getValidatorSchema() {
    return $this->validatorSchema;
}

public function validate() {
    $this->getInvoker()->setup();

    $errorStack = $this->getInvoker()->getErrorStack();
    if ($this->getValidatorSchema()) {
        try {
            $this->getValidatorSchema()->addOption('allow_extra_fields', true);
            $this->getValidatorSchema()->clean($this->getInvoker()->toArray(false));
        } catch (sfValidatorErrorSchema $errorSchema) {
            $errorStack = $this->getInvoker()->getErrorStack();
            foreach ($errorSchema->getErrors() as $key => $error) {
                /* @var $error sfValidatorError  */
                $errorStack->add($key, $error->getMessage());
            }
        }
    }
    $this->getInvoker()->validate();
}

}

ama Doktrin orijinal validate () işlevini kullanın.

Benim Doctrine_Template içine bildirilen yeni yöntem ile bazı Doctrine_Record işlevleri geçersiz istiyorum.

Bana bu sorun için bir çözüm önerebilir misiniz?

Tnx!

0 Cevap