与此问题相关,我在尝试编辑以前创建的任何记录时出现错误。这是错误(我省略了一些不相关的部分,因为没有扩展这么多的帖子):
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_method
或depends
选项设置才能正常工作。
如果你改变estado_id
为这个,它将工作:
$this->widgetSchema['estado_id'] = new sfWidgetFormDoctrineChoice(array(
'model' => 'Estado',
'add_empty' => 'Seleccione estado',
));