Hola , estoy en propel intentar embeber un formulario con una relacion
entre 2 tablas 1 a N en propel y no lo consigo, le he dedicado ya
varias horas y al final tengo que pedir ayuda con este mensaje porque
no doy con la solucion.
La situacion es la siguiente, Una entidad A y una entidad B. La
relacion que las une es 1 a N.
Los elementos de la entidad B ya estan creados.
Cuando quiero crear un elemento B, quiero embeber un formulario con A
para relacionarlo y dejarlo echo de una vez. Entonces al crear A tengo
que crear un nuevo campo o formulario para elegir un elemento de B, y
si todo esta bien relacionarlo.
Problema: No consigo sacar el id del elemento recien creado de A ( si
todo esta bien).
Hello men, yo una vez use eso de embeber form. En mi caso tenía una entidad llamada Cuestionario y Preguntas, se relacionaban 1:N. Un cuetionario tiene 1:N Preguntas jejeje. Mira el ejemplo:
En el form cuestionario donde voy a meter los form preguntas tengo esto:
<?php
/**
* Cuestionario form.
*
* @package * @subpackage form
* @author Your name here
* @version SVN: $Id: sfPropelFormTemplate.php 10377 2008-07-21 07:10:32Z dwhittle $
*/
class CuestionarioForm extends BaseCuestionarioForm
{
public function configure()
{
unset($this['created_at'], $this['updated_at']);
$this->widgetSchema['usuario_id'] = new sfWidgetFormInputHidden();
$this->widgetSchema['status'] = new sfWidgetFormInputHidden();
$this->widgetSchema['nro_preguntas'] = new sfWidgetFormInputHidden();
Como puedes ver, la validacion del if es para cuando se crea un cuestionario la primera ves que no tiene preguntas y sirve para cuando se va a modificar un Cuestionario especifico y obtener las preguntas para el cuestionario en cuestion.
Con respecto a la línea donde sale
$preguntas = $this->getObject()->getPreguntas();
Ese metodo lo programe en class Cuestionario extends BaseCuestionario
{
public function __toString(){
return self::getDescripcion();
}
public function getPreguntas(){
$c = new Criteria();
$c->add(PreguntaCuestionarioPeer::CUESTIONARIO_ID, $this->getId());
$result = PreguntaCuestionarioPeer::doSelect($c);
return $result;
}
}
Espero que te sirva y que uses propel porque fue lo que use ahí jejejeje pero igual el propel solo es necesario para buscar las preguntas asociadas al cuestionario jejejeje.
Suerte
murkein
--- El lun 23-nov-09, Elivi <eliv...@gmail.com> escribió:
De: Elivi <eliv...@gmail.com>
Asunto: [symfony-es] Atascado embeber formulario relacion 1:N
A: "symfony-es" <symfony-es@googlegroups.com>
Fecha: lunes, 23 noviembre, 2009, 8:14 am
Hola , estoy en propel intentar embeber un formulario con una relacion
entre 2 tablas 1 a N en propel y no lo consigo, le he dedicado ya
varias horas y al final tengo que pedir ayuda con este mensaje porque
no doy con la solucion.
La situacion es la siguiente, Una entidad A y una entidad B. La
relacion que las une es 1 a N.
Los elementos de la entidad B ya estan creados.
Cuando quiero crear un elemento B, quiero embeber un formulario con A
para relacionarlo y dejarlo echo de una vez. Entonces al crear A tengo
que crear un nuevo campo o formulario para elegir un elemento de B, y
si todo esta bien relacionarlo.
Problema: No consigo sacar el id del elemento recien creado de A ( si
todo esta bien).
___________________________________________________________________________ _________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=e1
Hola Williams en primer lugar gracias por tu respuesta.
He estado revisando tu codigo , pero la idea del que necesito hacer es
si el objeto es nuevo, poderle relacionar con un objeto ya creado.
Es decir, las preguntas ya existen, al crear el nuevo cuestionario
deberia desplegarse un campo y elegir una pregunta de las ya creadas,
y relacionarse.
Para mi el kit de la cuestion es obtener el id del cuestionario, para
una vez validado y comprobar que esta todo correcto poder,
relacionarlo con la pregunta seleccionada.
Voy a seguir dandole aber si consigo una solucion, si la encuentro la
posteo.
> Hola Williams en primer lugar gracias por tu respuesta.
> He estado revisando tu codigo , pero la idea del que necesito hacer es
> si el objeto es nuevo, poderle relacionar con un objeto ya creado.
> Es decir, las preguntas ya existen, al crear el nuevo cuestionario
> deberia desplegarse un campo y elegir una pregunta de las ya creadas,
> y relacionarse.
> Para mi el kit de la cuestion es obtener el id del cuestionario, para
> una vez validado y comprobar que esta todo correcto poder,
> relacionarlo con la pregunta seleccionada.
> Voy a seguir dandole aber si consigo una solucion, si la encuentro la
> posteo.
> dime una cosa te muestra el campo vacio???? de la foreingkey???
> El 24 de noviembre de 2009 05:50, Elivi <eliv...@gmail.com> escribió:
>> Hola Williams en primer lugar gracias por tu respuesta.
>> He estado revisando tu codigo , pero la idea del que necesito hacer es
>> si el objeto es nuevo, poderle relacionar con un objeto ya creado.
>> Es decir, las preguntas ya existen, al crear el nuevo cuestionario
>> deberia desplegarse un campo y elegir una pregunta de las ya creadas,
>> y relacionarse.
>> Para mi el kit de la cuestion es obtener el id del cuestionario, para
>> una vez validado y comprobar que esta todo correcto poder,
>> relacionarlo con la pregunta seleccionada.
>> Voy a seguir dandole aber si consigo una solucion, si la encuentro la
>> posteo.
Hola, si lo que quieres es llenar un campo con algunas de las opciones
que ya tienes en un modelo, puedes consultar este link: esta hecho
para doctrine, solo deberias poder adaptarlo a Propel.
Recuerda que debes cambiar tanto el widget como el Validator del
campo.
Estoy intentado buscar soluciones pero aun no doy con ella.
La idea seria una vez salvado el objeto A, actualizar el campo del
objeto B ( que ya esta creado con anterioridad) con el ID del objeto
A.
Pero ni redefinienodo los metodos bind, save... del objeto A soy capaz
de conseguirlo.
Con esta instruccion consigo cuando ni objeto A ni objeto B han sido
creados ( son los 2 nuevos ).
$this->embeddedForms['ObjetoB']->getObject()->setObjetoA($this-
>getObject());
Me tiene bastante quemado, porque creo que tiene que ser algo sencillo
y ya llevo varios dias y no encuentro la solucion.
/**
* Artista form.
*
* @package hofestival
* @subpackage form
* @author despai
* @version SVN: $Id: sfPropelFormTemplate.php 10377 2008-07-21
07:10:32Z dwhittle $
*/
class ArtistaForm extends BaseArtistaForm
{
public function configure()
{
parent::configure();
sfContext::getInstance()->getConfiguration()->loadHelpers(array
('Url'));
unset($this['created_at']);
/**
* Incluimos un widget y un validador para cada foto(4)
* @author despai
*/
$i = 1; while($i<=4) {
$this->widgetSchema['foto'.$i] = new
sfWidgetFormInputFileEditable(array(
'file_src' => public_path('uploads/artistas/full/'.$this-
$this->validatorSchema['foto'.$i.'_delete'] = new sfValidatorPass
();
$this->validatorSchema['with_delete'] = new sfValidatorBoolean
();
$i++; // 5 fotos
}
/**
* Incluimos el resto de widgets y validadores
* @author despai
*/
$this->widgetSchema['genero'] = new sfWidgetFormChoice(array(
'choices' => ArtistaPeer::$tipos_genero
));
/**
* Si estamos editando incluimos ArtistaDiscoForm y
ArtistaEnlaceForm
* en ArtistaForm . También un form para ambos (nuevo)
* @author despai
*/
if (!$this->isNew()) {
$i = 1;
foreach($this->getObject()->getArtistaDiscos() as $disco_actual)
{
$disco_form = new ArtistaDiscoForm($disco_actual);
$this->embedForm('disco'.$i,$disco_form);
$i++;
}
$nuevo_disco = new ArtistaDisco();
$nuevo_disco->setArtista($this->getObject());
/**
* reescribimos la función bind para que no salve los forms vacíos
de disco y enlace
*
* @param array $taintedValues
* @param array $taintedFiles
* @return void
* @author despai
*/
public function bind(array $taintedValues = null, array
$taintedFiles = null) {
> Estoy intentado buscar soluciones pero aun no doy con ella.
> La idea seria una vez salvado el objeto A, actualizar el campo del
> objeto B ( que ya esta creado con anterioridad) con el ID del objeto
> A.
> Pero ni redefinienodo los metodos bind, save... del objeto A soy capaz
> de conseguirlo.
> Con esta instruccion consigo cuando ni objeto A ni objeto B han sido
> creados ( son los 2 nuevos ).
> $this->embeddedForms['ObjetoB']->getObject()->setObjetoA($this-
> >getObject());
> Me tiene bastante quemado, porque creo que tiene que ser algo sencillo
> y ya llevo varios dias y no encuentro la solucion.
Por que no nos mandas tu schema.yml (o un ejemplo simplificado) para que te
entendamos un poco mejor, la verdad no entendí bien tu explicación del
problema. :)
> /**
> * reescribimos la función bind para que no salve los forms vacíos
> de disco y enlace
> *
> * @param array $taintedValues
> * @param array $taintedFiles
> * @return void
> * @author despai
> */
> public function bind(array $taintedValues = null, array
> $taintedFiles = null) {
> On 25 nov, 09:45, Elivi <eliv...@gmail.com> wrote:
> > Hola , y de nuevo gracias a tod@s.
> > Estoy intentado buscar soluciones pero aun no doy con ella.
> > La idea seria una vez salvado el objeto A, actualizar el campo del
> > objeto B ( que ya esta creado con anterioridad) con el ID del objeto
> > A.
> > Pero ni redefinienodo los metodos bind, save... del objeto A soy capaz
> > de conseguirlo.
> > Con esta instruccion consigo cuando ni objeto A ni objeto B han sido
> > creados ( son los 2 nuevos ).
> > $this->embeddedForms['ObjetoB']->getObject()->setObjetoA($this-
> > >getObject());
> > Me tiene bastante quemado, porque creo que tiene que ser algo sencillo
> > y ya llevo varios dias y no encuentro la solucion.
Pero explicate tu mas bien que es lo que quieres hacer y danos un ejemplo mejor y no uses objeto a y b, danos las entidades y dinos el porque quieres al modificar un objeto actualizar su id en el otro si ya estan relacionados. Explicate un poco mejor a ver si matamos esa culebra por la cabeza
murkein
--- El mié 25-nov-09, Elivi <eliv...@gmail.com> escribió:
De: Elivi <eliv...@gmail.com>
Asunto: [symfony-es] Re: Atascado embeber formulario relacion 1:N
A: "symfony-es" <symfony-es@googlegroups.com>
Fecha: miércoles, 25 noviembre, 2009, 4:45 am
Hola , y de nuevo gracias a tod@s.
Estoy intentado buscar soluciones pero aun no doy con ella.
La idea seria una vez salvado el objeto A, actualizar el campo del
objeto B ( que ya esta creado con anterioridad) con el ID del objeto
A.
Pero ni redefinienodo los metodos bind, save... del objeto A soy capaz
de conseguirlo.
Con esta instruccion consigo cuando ni objeto A ni objeto B han sido
creados ( son los 2 nuevos ).
$this->embeddedForms['ObjetoB']->getObject()->setObjetoA($this-
>getObject());
Me tiene bastante quemado, porque creo que tiene que ser algo sencillo
y ya llevo varios dias y no encuentro la solucion.
___________________________________________________________________________ _________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=e1
Hola, os voy a pegar el schema, que antes no queria ponerlo por no
liar mucho a la gente.
La relacion es que un propietario puede tener varios coches, pero un
coche pertenece a un propietario.
(he omitido el resto de los campos que no son fundamentales).
La situacion es que si creo al momento el propietario y el coche
perfecto.
Pero si quiero crear un nuevo propietairo y asignarle un coche no lo
consigo.
Lo mas importante , es que los coches ya estan inventariados en la
base de datos.
Sigo intentadolo, si doy con la solucion la posteo, y si alguien ha
echo algo parecido, haber si me puede indicar.
Muchas gracias de verdad por vuestro interes, me esta siendo muy util,
por lo menos no he tirado la toalla por vuestra ayuda.
Entonces si debe ser como dijiste hace un tiempo. Ya tenemos los coches en el stock.ahora ccuando crees un propietario debes mostrarle la lista de los coches disponibles y eso lo verificas mirando el valor de su clave foranea en la tabla.si es un coche el cual no ha sido asigando a un propietario, entonces debe tener ese valor null. Es decir, al crear un propietario, debes tener un metodo que te traiga la lista de coches pero que aun no tengan propietarios: selecte * from coches where propietario_id <> id. (id es del propietrio)
no se, asi lo veo yo :S
murkein
--- El jue 26-nov-09, Elivi <eliv...@gmail.com> escribió:
De: Elivi <eliv...@gmail.com>
Asunto: [symfony-es] Re: Atascado embeber formulario relacion 1:N
A: "symfony-es" <symfony-es@googlegroups.com>
Fecha: jueves, 26 noviembre, 2009, 5:25 am
Hola, os voy a pegar el schema, que antes no queria ponerlo por no
liar mucho a la gente.
La relacion es que un propietario puede tener varios coches, pero un
coche pertenece a un propietario.
(he omitido el resto de los campos que no son fundamentales).
La situacion es que si creo al momento el propietario y el coche
perfecto.
Pero si quiero crear un nuevo propietairo y asignarle un coche no lo
consigo.
Lo mas importante , es que los coches ya estan inventariados en la
base de datos.
Sigo intentadolo, si doy con la solucion la posteo, y si alguien ha
echo algo parecido, haber si me puede indicar.
Muchas gracias de verdad por vuestro interes, me esta siendo muy util,
por lo menos no he tirado la toalla por vuestra ayuda.
___________________________________________________________________________ _________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=e1
Si esa parte la consigo, son un sfwidgetpropelchoice, ha si que el
usuario elige uno, el probema esta a la hora de volcar los datos en la
BBDD.
Al no tener aun el id del propietario, no consigo hacer que actualize
el campo propietario_id en la tabla coches.
Modifico el save, y bind pero no doy con una solucion.
Lo unico alternativo que se me ocurre es crear el propietario, y luego
redigir a otra formulario para seleccionar un coche, pero claro lo
interesante seria poder hacerlo todo en un paso.
Hola! a mi parecer existe un problema en como tienes definido tu
Modelo de Datos. Y en como estas enfocando el problema. Me explico
mejor: Lo que tienes es una simple función de inventario donde por un
lado tienes Muchos Posible Clientes y Por otro lado Muchos posible
Coches que van a ser comprados.
Entonces yo redefiniria tu modelo a uno m2m donde el refclass de ambos
sea id_propietario y id_coche. y lo puedes comprobar con la siguiente
pregunta. ¿Como haces si un nuevo cliente queire comprar más de un
coche a la vez? con la relación que tienes definida no creo que lo
puedas en un solo paso. tendrías que hacer una transacción y luego
volver a cargar el mismo formulario para poderle asignar un nuevo
vehiculo. Por definición las relaciones 1:N solo definen una sola
transacción a la vez, esta es otra razón por la que existen las m2m.
Ahora como puedes seleccionar varios Coches al mismo tiempo?. Prueba
lo siguiente: Suponiendo que tengas 3 entidades (Propietarios, Coches,
y PropietariosCoches). la relación la defines en Propietarios y usas
el PropietarioForm. Aqui Symfony por defecto te va a incluir como
campos en el formulario cualquier relación que tengas definida sobre
la entidad a la que pertenece el Formulario sobre le que trabajas.
Entonces en el campo donde se muestran las opcines de la relacion por
lo general (coches_list) que ciertamente usa un widgetPropelChoice te
va a colocar todos los vahiculos que tengas Disponibles en tu entidad
Coches.
En fin, desde mi perspectiva hay un error estructural en tu modelo.
Todo esto desde mi humilde opinión, por lo cual te aconsejo que lo
pienses un poco más, quizas todo lo que te dije es una completa
locura, pero asi es como nosotros resolvemos los problemas con
inventarios.
Esto es otra cosa que nunca he podido hacer que symfony me la haga por si sola. la realcion m2m, quien tiene un ejemplo? que widget uso? siempre tengo que guardar las cosas por otra parte
murkein
--- El vie 27-nov-09, randolph octavio <rbaraza...@gmail.com> escribió:
Hola! a mi parecer existe un problema en como tienes definido tu
Modelo de Datos. Y en como estas enfocando el problema. Me explico
mejor: Lo que tienes es una simple función de inventario donde por un
lado tienes Muchos Posible Clientes y Por otro lado Muchos posible
Coches que van a ser comprados.
Entonces yo redefiniria tu modelo a uno m2m donde el refclass de ambos
sea id_propietario y id_coche. y lo puedes comprobar con la siguiente
pregunta. ¿Como haces si un nuevo cliente queire comprar más de un
coche a la vez? con la relación que tienes definida no creo que lo
puedas en un solo paso. tendrías que hacer una transacción y luego
volver a cargar el mismo formulario para poderle asignar un nuevo
vehiculo. Por definición las relaciones 1:N solo definen una sola
transacción a la vez, esta es otra razón por la que existen las m2m.
Ahora como puedes seleccionar varios Coches al mismo tiempo?. Prueba
lo siguiente: Suponiendo que tengas 3 entidades (Propietarios, Coches,
y PropietariosCoches). la relación la defines en Propietarios y usas
el PropietarioForm. Aqui Symfony por defecto te va a incluir como
campos en el formulario cualquier relación que tengas definida sobre
la entidad a la que pertenece el Formulario sobre le que trabajas.
Entonces en el campo donde se muestran las opcines de la relacion por
lo general (coches_list) que ciertamente usa un widgetPropelChoice te
va a colocar todos los vahiculos que tengas Disponibles en tu entidad
Coches.
En fin, desde mi perspectiva hay un error estructural en tu modelo.
Todo esto desde mi humilde opinión, por lo cual te aconsejo que lo
pienses un poco más, quizas todo lo que te dije es una completa
locura, pero asi es como nosotros resolvemos los problemas con
inventarios.
Saludos.
___________________________________________________________________________ _________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=e1
haber, por lo que veo...
quieres en un solo formulario hacer las siguientes cosas:
1)seleccionar un cliente (futuro propietario)
2)seleccionar 1..* autos que seran asignados a ese cliente (convirtiendolo
en propietario)
3)claro, enviar el form. y que se registren esos moviemientos en la DB.
si es así lo que se me ocurre es..:
1) crear un formulario con un choice para seleccionar el cliente (futuro
propietario) y varios otros choices para seleccionar los coches. Seguro que
esta parte ya la tienes hecha.
cuando el formulario es enviado tenemos algo asi en los en el request : (ej:
request array {'user'{...},'otrosParametros'{...},'*
aplicacion_propietario_asignacion*'{.....} }).
*aplicacion_propietario_asignacion
*es el que nos interesa (le puse ese nombre como ejemplo, el nombre lo
defines en tu AsignacionPropietarioForm en configure() con el metodo
$this->widgetSchema->setNameFormat('aplicacion_propietario_asignacion[%s]') ;
)
por que ahi adentro esta la informacion del propietario, y de los autos.
entonces hacemos:
$parametos= $request->getParameter('aplicacion_propietario_asignacion'); que
nos dara un array con los parametros que el formulario contiene (ej:
'aplicacion_propietario_asignacion' array {'propietario_id' => 2 ,
'auto_id_1' => array{'id'=>12,'nombre'=>'brasilia','codigo'=>fe12,'*
propietario_id'=>null*},'auto_id_2'
=>array{'id'=>25,'nombre'=>'peta','codigo'=>pe43,'*propietario_id'=>null*}.
supongo que el hecho de que esas negrillas esten en null son el problema que
tienes, por lo que siempre te dira, "propietario_id required" o te da un
error tipo "propietario_id is null" o algo asi en el navegador al lanzar el
formulario.
bueno, luego obtenemos el propietario_id así :
$propietario_id=$parametros['propietario_id'];
//recorremos el array de parametros buscando por los array con la info de
los //autos y les asignamos el valor de $propietario_id en su campo
respectivo
foreach($parametros as $key =>$parametro){
if(substr($key,0,4) ==='auto')
$parametro['propietario_id']=$propietario_id;
}
con lo anterios has rellenado los espacios propietario_id de los parametros
de los autos o sea: del ejemplo que di:
que como tiene el mismo nombre reemplazara al array inicial (el que tiene
nulls) para asignarle este que tenemos con todo lleno.
en este momento el $request, tiene toda la informacion para procesar tus
asignaciones, asi que le haces processForm($request,$this->form);
y todo deberia registrarse enla base de datos.
Haber, hace cacho que no hago eso, pero creo que deberia darXD.
Es algo tedioso, pero tampoco encontré una forma automatica de hacer eso,
prefiero ahorrarme tiempo, y seleccoinar un cliente en una pantalla , poner
un buscador, que me lanze resultados de autos y elegir uno por uno, claro
que muchos no estaran de acuerdo, pero bueno,es que aun no he manipulado
mucho ajax :(
deberia funcionar, asi hice varias veces, no es lo mas limpio , pero
funciona saludos.
> Esto es otra cosa que nunca he podido hacer que symfony me la haga por si
> sola. la realcion m2m, quien tiene un ejemplo? que widget uso? siempre tengo
> que guardar las cosas por otra parte
> murkein
> --- El *vie 27-nov-09, randolph octavio <rbaraza...@gmail.com>* escribió:
> Hola! a mi parecer existe un problema en como tienes definido tu
> Modelo de Datos. Y en como estas enfocando el problema. Me explico
> mejor: Lo que tienes es una simple función de inventario donde por un
> lado tienes Muchos Posible Clientes y Por otro lado Muchos posible
> Coches que van a ser comprados.
> Entonces yo redefiniria tu modelo a uno m2m donde el refclass de ambos
> sea id_propietario y id_coche. y lo puedes comprobar con la siguiente
> pregunta. ¿Como haces si un nuevo cliente queire comprar más de un
> coche a la vez? con la relación que tienes definida no creo que lo
> puedas en un solo paso. tendrías que hacer una transacción y luego
> volver a cargar el mismo formulario para poderle asignar un nuevo
> vehiculo. Por definición las relaciones 1:N solo definen una sola
> transacción a la vez, esta es otra razón por la que existen las m2m.
> Ahora como puedes seleccionar varios Coches al mismo tiempo?. Prueba
> lo siguiente: Suponiendo que tengas 3 entidades (Propietarios, Coches,
> y PropietariosCoches). la relación la defines en Propietarios y usas
> el PropietarioForm. Aqui Symfony por defecto te va a incluir como
> campos en el formulario cualquier relación que tengas definida sobre
> la entidad a la que pertenece el Formulario sobre le que trabajas.
> Entonces en el campo donde se muestran las opcines de la relacion por
> lo general (coches_list) que ciertamente usa un widgetPropelChoice te
> va a colocar todos los vahiculos que tengas Disponibles en tu entidad
> Coches.
> En fin, desde mi perspectiva hay un error estructural en tu modelo.
> Todo esto desde mi humilde opinión, por lo cual te aconsejo que lo
> pienses un poco más, quizas todo lo que te dije es una completa
> locura, pero asi es como nosotros resolvemos los problemas con
> inventarios.
Disculpar la tardanza, pero estos dias he estado liado con otras cosas
y no he podido avanzar nada.
La idea es la siguiente, la tabla coches esta completada, y la tabla
de propietarios vacia.
Cuando quiero ingresar un nuevo propietario, quiero dar la opcion de
asociarlo con un vehiculo.
Entonces al formulario de nuevo propietario, embebo un formulario, con
2 campos, uno es un sfWidgetFormPropelChoice para elegir uno de los
vehiculos posibles y el otro campo es un input normal que el usuario
pondra s/n si quiere o no, asociarlo ya con un vehiculo.
Si se elige s en el campo input, entonces hay que guardar en el campo
propietario_id , el id del nuevo propietario <- aqui esta el problema.
He redefinido , de nuevo el bind, intentando en primer lugar que si
esta activo el campo s, guardar por un lado el propietario, y de ahi
intentar obtener el id, para asociarlo al objeto vehiculo,
seleccionado y hacerle un update. Pero me da error , intenta guardar
el objeto ip, en lugar de modificarlo.
Intentare redefinir Save, y haber si por ahi consigo algo.
> Disculpar la tardanza, pero estos dias he estado liado con otras cosas
> y no he podido avanzar nada.
> La idea es la siguiente, la tabla coches esta completada, y la tabla
> de propietarios vacia.
> Cuando quiero ingresar un nuevo propietario, quiero dar la opcion de
> asociarlo con un vehiculo.
> Entonces al formulario de nuevo propietario, embebo un formulario, con
> 2 campos, uno es un sfWidgetFormPropelChoice para elegir uno de los
> vehiculos posibles y el otro campo es un input normal que el usuario
> pondra s/n si quiere o no, asociarlo ya con un vehiculo.
> Si se elige s en el campo input, entonces hay que guardar en el campo
> propietario_id , el id del nuevo propietario <- aqui esta el problema.
> He redefinido , de nuevo el bind, intentando en primer lugar que si
> esta activo el campo s, guardar por un lado el propietario, y de ahi
> intentar obtener el id, para asociarlo al objeto vehiculo,
> seleccionado y hacerle un update. Pero me da error , intenta guardar
> el objeto ip, en lugar de modificarlo.
> Intentare redefinir Save, y haber si por ahi consigo algo.
Hola Marcos, el trozo de codigo que has posteado funciona
perfectamente en el action, pero al intentar hacerlo en el bind del
formulario no tira.( la idea es esta, porque si mañana quiero embeber
a su vez este formulario dentro de otro, habria que cambiar toda la
logica).
He probado a quitar el fomulario embebido, utilizar solo el de
propietario, quitar el save del action, y ponerlo en el bind ( como
ultima linea, una vez ejecutado este llamando al bind padre) y siempre
me sale el mismo error, error de entrada duplicada. No lo entiendo,
quizas desde el bind no se pueda llamar al save ( aunke no veo el
inconveniente).