0

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

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

SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/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 ... at call_user_func(array (object('Estado'), '')) 在 SF_ROOT_DIR/plugins/sfDependentSelectPlugin/lib/source/sfDependentSelectObjectSource.class.php 第 56 行 ... 在 SF_ROOT_DIR/plugins/sfDependentSelectPlugin/ 中的 sfDependentSelectObjectSource->getRefValue('15') lib/widget/sfWidgetFormDependentSelect.class.php 第 98 行 ... 在 SF_ROOT_DIR/plugins/sfDependentSelectPlugin/lib/widget/sfWidgetFormObjectDependentSelect 中的 sfWidgetFormDependentSelect->render('persona[estado_id]', '15', array(), null)。 class.php 第 70 行 ... 在 sfWidgetFormObjectDependentSelect->render('persona[estado_id]', '15', array(),null) 在 SF_ROOT_DIR/plugins/sfDependentSelectPlugin/lib/widget/sfWidgetFormDoctrineDependentSelect.class.php 第 67 行 ... 在 SF_ROOT_DIR/lib 中的 sfWidgetFormDoctrineDependentSelect->render('persona[estado_id]', '15', array(), null) /vendor/symfony/lib/widget/sfWidgetFormSchema.class.php 第 512 行 ... 在 SF_ROOT_DIR/lib/vendor/symfony/lib/ 中的 sfWidgetFormSchema->renderField('estado_id', '15', array(), null) form/sfFormField.class.php 第 119 行 ...在 SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php 第 58 行中的 sfFormField->render()class.php 第 512 行 ...在 SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php 第 119 行中的 sfWidgetFormSchema->renderField('estado_id', '15', array(), null) .. . 在 SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php 第 58 行中的 sfFormField->render()class.php 第 512 行 ...在 SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php 第 119 行中的 sfWidgetFormSchema->renderField('estado_id', '15', array(), null) .. . 在 SF_ROOT_DIR/lib/vendor/symfony/lib/form/sfFormField.class.php 第 58 行中的 sfFormField->render()

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

4

1 回答 1

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',
)); 
于 2013-04-08T09:13:44.187 回答