Yii Framework Forum: Insercion De Dos Registros Diferentes En Un Mismo Modelo - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Insercion De Dos Registros Diferentes En Un Mismo Modelo Rate Topic: -----

#1 User is offline   sanat 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 34
  • Joined: 26-September 12
  • Location:Caracas, Venezuela

Posted 30 January 2013 - 10:19 PM

Hola comunidad,

mi problema consiste en como adaptar el metodo ActionCreate de un Controller para grabar un nuevo registro de otra tabla despues de haber grabado el registro correspondiente al modelo del controlador.
Voy a explicarme mejor: tengo dos tablas A y B, A es el padre de B. Tengo el Controlador y modelo de la tabla A, y solamente el modelo de la tabla B. Los datos de la tabla B se encuentran en la tabla A. Cuando el metodo ActionCreate del Controlador A grabe el registro de la tabla A, entonces se debe grabar el registro de la tabla B.
Aqui esta el codigo que me crea un registro NULO:
private $_tablaB;
public function actionCreate()
{
$model=new TABLA_A;
if(isset($_POST['tablaA']))
{
$model->attributes=$_POST['tablaA'];
if($model->save()) {
$this->_tablaB = new tablaB; Instancio el Modelo de la Tabla B
$this->_tablaB->attributes = array('id'=>NULL, item1=>$model->id_item1, 'id_tablaA'=>model->ID,); Asigno los valores de la tabla B en funcion de los valores de la Tabla A
$this->_tablaB->save(); Almaceno el registro de la Tabla B $this->redirect(array('view','id'=>$model->iD));
}
$this->render('create',array( 'model'=>$model, ));
}

Que estoy haciendo de forma incorrecta, cualquier ayuda es bienvenida. Gracias
0

#2 User is offline   Juan Carrera 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 13
  • Joined: 05-October 12
  • Location:Zaragoza (Spain)

Posted 31 January 2013 - 05:55 PM

Hola,
a mi cuando no me graba un registro siempre es porque no supera alguna regla de validación. La otra posibilidad que se me ocurre es que sobre la asignación NULL al id de la tabla_B si es autoincremental.

Un saludo
0

#3 User is offline   lagogz 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 426
  • Joined: 30-November 12
  • Location:Galiza

Posted 05 February 2013 - 09:51 AM

public function actionCreate()
    {
        $transaction=Yii::app()->db->beginTransaction();    
        
        try
    { 
$modelA=new ModelA;                                                                                          

            if(isset($_POST['ModelA']))             
            {
                $modelA->attributes=$_POST['ModelA'];

                if($modelA->save())              
                {

                    $modelB=new ModelB;
                    $modelB->IdmodelB=$modelA->IdmodelA;
                    $modelB->campoB='campob';
 
                    $modelB->save();

                    $transaction->commit();                 
                   
                    $this->redirect(array('view','id'=>$modelA->IdmodelA));
                }
            }
            
            $this->render('create',array(
                                        'modelA'=>$modelA,
                                        ));
        }
        catch(Exception $e)                                 
        {
           $transaction->rollback();                        
        }
    }


Aunque me imagino q el
'id'=>NULL

te dará error pq no creo q quieras un identificador nulo.

Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users