尝试编辑记录时获取"Unknown method Estado::"



与此问题相关,我在尝试编辑以前创建的任何记录时出现错误。这是错误(我省略了一些不相关的部分,因为没有扩展这么多的帖子):

500 |内部服务器错误| Doctrine_Record_UnknownPropertyException未知方法Estado::

stack trace at () inSF_ROOT_DIR/lib/供应商/symfony/lib/插件/sfDoctrinePlugin/lib/供应商/理论/理论/Record.php第2658行……}

    }
    throw new Doctrine_Record_UnknownPropertyException(sprintf('Unknown method

%s::%s', get_class($this), $method));

}

/** at Doctrine_Record->__call('', array()) in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/record/sfDoctrineRecord.class.php

第197行…at sfDoctrineRecord->__call(", array()) in n/a line n/a…at Estado->() in n/a line n/a…在call_user_func(array(object('Estado'), ")) inSF_ROOT_DIR/插件/sfDependentSelectPlugin/lib//sfDependentSelectObjectSource.class.php来源第56行……在sfDependentSelectObjectSource-> gettrefvalue ('15') inSF_ROOT_DIR/插件/sfDependentSelectPlugin/lib/部件/sfWidgetFormDependentSelect.class.php第98行……在sfWidgetFormDependentSelect ->渲染("角色(estado_id)","15",Array (), null) inSF_ROOT_DIR/插件/sfDependentSelectPlugin/lib/部件/sfWidgetFormObjectDependentSelect.class.php第70行……在sfWidgetFormObjectDependentSelect ->渲染("角色(estado_id)","15",Array (), null) inSF_ROOT_DIR/插件/sfDependentSelectPlugin/lib/部件/sfWidgetFormDoctrineDependentSelect.class.php第67行……在sfWidgetFormDoctrineDependentSelect ->渲染("角色(estado_id)",'15', array(), null) inSF_ROOT_DIR/lib/供应商/symfony/lib/部件/sfWidgetFormSchema.class.php第512行……at sfWidgetFormSchema->renderField('estado_id', '15'),Array (), null) inSF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php…在sfFormField->渲染()在SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php第58行

我不知道在哪里寻找这个Estado::或者它失败的地方,任何解决方案?

所以问题在于小部件的定义。使用的原始定义:

$this->widgetSchema['estado_id'] = new sfWidgetFormDoctrineDependentSelect(array( 
    'model' => 'Estado', 
    'add_empty' => 'Seleccione estado', 
    'ajax' => true 
)); 
$this->widgetSchema['municipio_id'] = new sfWidgetFormDoctrineDependentSelect(array( 
    'model' => 'Municipio', 
    'depends' => 'Estado', 
    'add_empty' => 'Seleccione municipio', 
    'ajax' => true, 
    'order_by' => array('nombre', 'asc') 
));

两个小部件都属于sfWidgetFormDoctrineDependentSelect类,但实际上只有municipio_id具有依赖性。

似乎sfWidgetFormDoctrineDependentSelect需要ref_methoddepends选项设置才能正常工作。

如果你改变estado_id为这个,它将工作:

$this->widgetSchema['estado_id'] = new sfWidgetFormDoctrineChoice(array( 
    'model' => 'Estado', 
    'add_empty' => 'Seleccione estado',
)); 

最新更新