Error Doctrine_Core::set() en relacion 1-N

64 views
Skip to first unread message

cgb

unread,
Jan 6, 2010, 10:44:35 PM1/6/10
to symfony-es
hola a todos

Estoy tratando de hacer una relacion 1-n de la siguiente manera:

public function executeNew(sfWebRequest $request) {

$org = new AwebOrganizacion;

$usuario = new AwebUsuario();
$usuario->setAwebOrganizacion($org->getbyId(1));

$this->form = new awebusuarioForm($usuario);
}

Es decir que antes de llamar al Form instancio el padre. En este caso
el resultado de $org->getbyId(1)

Me sale el siguiente error: Couldn't call Doctrine_Core::set(), second
argument should be an instance of Doctrine_Record or Doctrine_Null
when setting one-to-one references.

La funcion getbyId es la siguiente:

public function getbyId($id) {
$query = Doctrine_Query::create()
->from('AwebOrganizacion o')
->where('o.id= ?', $id);

return $query->execute();
}

Alguna idea de porque el mansaje y posible solucion ?

alex-unstable

unread,
Feb 4, 2010, 5:30:58 PM2/4/10
to symfony-es
Hola, me pasa lo mismo, conseguiste arreglarlo??

cgb ha escrito:

Claudio Brandolin

unread,
Feb 4, 2010, 6:39:06 PM2/4/10
to symfo...@googlegroups.com
El problema no esta en el excuteNew sino en el getbyId ya que el return $query->execute(); esta devolviendo una coleccion de registros y se esta esperando que se devuelva un solo registro, por lo tanto cambiando a  return $result[0];

Es decir, en el return del getbyId pongo
Antes: return $query->execute();  
Ahora: return $result[0];


--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.




--
Claudio Brandolin

Daniel González

unread,
Feb 4, 2010, 6:57:51 PM2/4/10
to symfo...@googlegroups.com
2010/2/5 Claudio Brandolin <cgbra...@gmail.com>

El problema no esta en el excuteNew sino en el getbyId ya que el return $query->execute(); esta devolviendo una coleccion de registros y se esta esperando que se devuelva un solo registro, por lo tanto cambiando a  return $result[0];

Es decir, en el return del getbyId pongo
Antes: return $query->execute();  
Ahora: return $result[0];


O más chulo ...

$q->execute()->getFirst();


-- 
---------------------------------------------------------
Daniel González Cerviño
FreelanceMadrid.es
Mail : daniel....@freelancemadrid.es
Tel (+34)  653 96 50 48
---------------------------------------------------------

Marcos

unread,
Feb 5, 2010, 7:57:44 AM2/5/10
to symfony-es
Otra forma

$q->fetchOne();

On 4 feb, 20:57, Daniel González <ikar...@gmail.com> wrote:
> 2010/2/5 Claudio Brandolin <cgbrando...@gmail.com>


>
> > El problema no esta en el excuteNew sino en el getbyId ya que el return
> > $query->execute(); esta devolviendo una coleccion de registros y se esta
> > esperando que se devuelva un solo registro, por lo tanto cambiando a  return
> > $result[0];
>
> > Es decir, en el return del getbyId pongo
> > Antes: return $query->execute();
> > Ahora: return $result[0];
>
> O más chulo ...
>
> $q->execute()->getFirst();
>
> --
> ---------------------------------------------------------
> Daniel González Cerviño
> FreelanceMadrid.es

> Mail : daniel.gonza...@freelancemadrid.es

Reply all
Reply to author
Forward
0 new messages