在尝试编辑记录时获取“未知方法Estado ::”

时间:2013-04-03 16:33:55

标签: symfony-1.4 symfony-forms

与此question相关我在尝试编辑之前创建的任何记录时遇到错误。这是错误(我省略了一些不相关的部分,因为没有如此多地扩展帖子):

  

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

     

在()中的堆栈跟踪   SF_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行...在sfDoctrineRecord-> __调用('',array())在n / a行n / a   ...在Estado->()中n / a行n / a ... at   call_user_func(array(object('Estado'),''))in   SF_ROOT_DIR /插件/ sfDependentSelectPlugin / lib中/源/ sfDependentSelectObjectSource.class.php   第56行...在sfDependentSelectObjectSource-> getRefValue('15')中   SF_ROOT_DIR /插件/ sfDependentSelectPlugin / lib中/小工具/ sfWidgetFormDependentSelect.class.php   第98行......在   sfWidgetFormDependentSelect-> render('persona [estado_id]','15',   array(),null)in   SF_ROOT_DIR /插件/ sfDependentSelectPlugin / lib中/小工具/ sfWidgetFormObjectDependentSelect.class.php   70号线......   sfWidgetFormObjectDependentSelect-> render('persona [estado_id]','15',   array(),null)in   SF_ROOT_DIR /插件/ sfDependentSelectPlugin / lib中/小工具/ sfWidgetFormDoctrineDependentSelect.class.php   第67行......在   sfWidgetFormDoctrineDependentSelect->呈现( '角色[estado_id]',   '15',array(),null)in   SF_ROOT_DIR / lib中/供应商/ symfony的/ lib中/小工具/ sfWidgetFormSchema.class.php   第512行...在sfWidgetFormSchema-> renderField('estado_id','15',   array(),null)in   SF_ROOT_DIR / lib / vendor / symfony / lib / form / sfFormField.class.php第119行   ...在sfFormField-> render()中   SF_ROOT_DIR / lib / vendor / symfony / lib / form / sfFormField.class.php第58行

我不知道在哪里寻找 Estado :: 或失败的地方,对此有什么解决方法?

1 个答案:

答案 0 :(得分:1)

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

$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',
));