Por qué este esquema está generando una relación n: m
Tengo este archivo schema.yml (solo parte relevante):
SdrivingMaquina:
actAs:
Timestampable: ~
columns:
idmaquina: { type: integer(8), autoincrement: true, notnull: true, primary: true }
idempresa: { type: integer(4), notnull: true }
patente: { type: string(12), notnull: true }
relations:
Empresa: { local: idempresa, class: SdrivingEmpresa, type: one, foreignType: one, foreignAlias: MaquinaEmpresa, onDelete: CASCADE, onUpdate: CASCADE }
SdrivingMaquinaEmisor:
actAs:
Timestampable: ~
columns:
idmaquinaemisor: { type: integer(8), primary: true, autoincrement: true }
idmaquina: { type: integer(8), notnull: true }
idemisor: { type: integer(8), notnull: true }
relations:
SdrivingEmisor: { onDelete: CASCADE, local: idemisor, foreign: idemisor, type: one }
SdrivingMaquina: { onDelete: CASCADE, local: idmaquina, foreign: idmaquina, type: one }
Luego, después de ejecutar la tareasymfony doctrine:build-model
Reviso la claseBaseSdrivingMaquina.class.php
Y puedo ver este código:
public function setUp()
{
parent::setUp();
$this->hasOne('SdrivingEmpresa as Empresa', array(
'local' => 'idempresa',
'foreign' => 'id',
'onDelete' => 'CASCADE',
'onUpdate' => 'CASCADE'));
$this->hasOne('SdrivingEmpresa', array(
'local' => 'idempresa',
'foreign' => 'idempresa'));
$this->hasMany('SdrivingMaquinaEmisor', array(
'local' => 'idmaquina',
'foreign' => 'idmaquina'));
$timestampable0 = new Doctrine_Template_Timestampable();
$this->actAs($timestampable0);
}
Cuando intento insertar cualquier registro me sale este error:
No se pudo llamar a Doctrine_Core :: set (), el segundo argumento debería ser una instancia de Doctrine_Collection cuando se configuran referencias de uno a muchos.
Lo que me hace pensar que el error es la relación. Esta publicación está relacionada con esto.uno ¿Puede alguien decirme qué está mal o dónde está mi error?