Buenas tardes gentecilla del dev.
Llevo varios días atascado con una cosilla en symfony y por mucho que le doy vueltas leo y pruebo, no consigo solucionarlo a ver si alguien por aquí puede echarme un cable.
Tengo dos bonitas entidades, la entidad User y la entidad Empresa.
Cada usuario puede pertenecer a varías empresas y cada empresa puede tener varios usuarios con lo que se nos generá una bonita N:N bidireccional (con su respectiva tabla intermedia), aquí os dejo el código de la misma
/*Relación en User*/
/**
*
* @ORMManyToMany(targetEntity="MGAdminBundleEntityEmpresa", inversedBy="users")
* @ORMJoinTable(name="user_empresa")
*/
public $empresas;
public function __construct()
{
parent::__construct();
$this -> empresas = new ArrayCollection();
}
/*Relación en empresa*/
/**
* @ORMManyToMany(targetEntity="MGUserBundleEntityUser", mappedBy="empresas")
*/
private $users;
/**
* Constructor
*/
public function __construct()
{
$this->users = new ArrayCollection();
}
La cosa es que teniendo esto, cuando creo un formulario para agregar usuario, si no le pasas empresa perfecto el usuario se crea bien, pero cuando pasas la empresa en la creación del usuario, si le pasas un objeto tipo entidad pide un array collection y si le pasas un array collection pide un tipo entidad, la verdad que me estoy volviendo un poco gilipoyas con este tema, a ver si alguien me puede echar una mano.
EDITO -->
Ya lo he logrado solucionar, resulta que la definir ArrayCollections para las relaciones ManyToMany con Doctrine por fuerza el widget para la asignación de la relación ha de ser un selector multiple, os dejo el ejemplo por si a alguien más le pasa:
->add('empresas', 'entity', array(
'class' => 'MGAdminBundle:Empresa',
'property' => 'nombre',
'multiple' => true))
;