我有这个symfony Recepciones课程 这与Obras_Sociales_Recepciones类有关 正如我的BaseRecepciones类所声称:
/* @method Recepciones setRecepcionId() Sets the current record's "recepcion_id" value
* @method Recepciones setCuentaLaboratorioId() Sets the current record's "cuenta_laboratorio_id" value
* @method Recepciones setCuentasLaboratorios() Sets the current record's "Cuentas_Laboratorios" value
* @method Recepciones setObrasSocialesRecepciones() Sets the current record's "Obras_Sociales_Recepciones" collection
*/
abstract class BaseRecepciones extends sfDoctrineRecord
{
public function setTableDefinition()
{
$this->setTableName('Recepciones');
$this->hasColumn('recepcion_id', 'integer', 4, array(
'type' => 'integer',
'fixed' => 0,
'unsigned' => true,
'primary' => true,
'autoincrement' => true,
'length' => 4,
));
$this->hasColumn('cuenta_laboratorio_id', 'integer', 4, array(
'type' => 'integer',
'fixed' => 0,
'unsigned' => true,
'primary' => false,
'notnull' => true,
'autoincrement' => false,
'length' => 4,
));
}
public function setUp()
{
parent::setUp();
$this->hasOne('Cuentas_Laboratorios', array(
'local' => 'cuenta_laboratorio_id',
'foreign' => 'cuenta_laboratorio_id'));
$this->hasMany('Obras_Sociales_Recepciones', array(
'local' => 'recepcion_id',
'foreign' => 'recepcion_id'));
}
}
然而..当我在行动上这样做时
$recepcionPrueba = new Recepciones();
$recepcionPrueba->setObrasSocialesRecepciones($myObject);
它说:
未知记录属性/相关组件" obras_sociales_recepciones" on" Recepciones"
任何想法????非常感谢你
答案 0 :(得分:5)
我终于发现了发生了什么事,我希望有人能帮助我节省两三天的时间来解决这个问题。
Doctrine 1.2 只接受两种表示法表示
CamelCase或underscored_notation。在内部,它识别它们中的任何一个,并且能够将前者转换为后者,反之亦然。
在我的情况下,如果我的表名被称为“obras_sociales_recepciones”或“ObrasSocialesRecepciones”,则此错误将永远不会发生。
事实是,在Doctrine 1.2中,你应该从不使用CamelCase和下划线符号的混合,这是我的示例Obras_Sociales_Recepciones,这绝对会混淆ORM,你可能会收到这个奇怪的错误,从来没有找出原因!答案 1 :(得分:0)
只是一个猜测,因为我是一个Propel用户...将parent::setUp()
移动到setUp方法的末尾会有帮助吗?我想知道父母是否对关系做了什么,如果你在调用父母之后定义它们就无法做到。
答案 2 :(得分:0)
在选择型号名称时避免使用复数名称(在您的情况下,应使用Recepcion
)。你能发布位于BaseRecepciones之前的评论吗?好的方法名称应该出现在这个评论中,我想这是奇怪的,比如setObrasSocialesRecepcioness()
和2的'
答案 3 :(得分:0)
这是一对一,所以你不要这样做:
$recepcionPrueba->setObrasSocialesRecepciones($myObject);
你做
$recepcionPrueba->addObrasSocialesRecepciones($myObject);
您可以一对一地调用'set'。