En primera apenas estoy iniciando en este framework y me he topado con muchos problemitas pero de todos he encontrado soluciones, excepto de una de la cual espero puedan apoyarme,
bueno lo que tengo son dos modelos con los mismos campos y modelA y ModelB ambos con los mismos campos, lo que busco es que cuando se llame al action delete del modeloB el registro que se valla a eliminar primero se guarde en el Modelo B
esto es lo que tengo en la acción del controlador del modeloA
public function actionDelete($id)
{
$models=new ModeloB;
$models=$this->loadModel($id);
if(Yii::app()->request->isPostRequest)
{
if(isset($_POST['ModeloB']))
{
$models->attributes=$_POST['ModeloB'];
if($models->save())
$this->loadModel($id)->delete();
}
}
y pues no me esta guardando el registro en el modeloB
espero alguien me pueda ayudar y de antemano muchas gracias
También soy nuevo en el mundo Yii, los conocimientos que he adquirido ha sido "cacharreando" el código que trae Yii por defecto, la lectura y las ayudas del foro. Con respecto a tu problema veo lo siguiente, cuando ingresas al action delete, este llega por el método de envío GET, por consiguiente cuando preguntas:
Bueno pues he estado revisando y modificando según los comentarios que se han expuesto y aun no logro guardar el registro, siempre queda vacio, ahora pensandole un poco quizá habrá manera de obtener el registro desde alguna consulta y luego guradarla??
muchísimas gracias por sus comentario y pues esto me servirá para un tipo de borrado lógico, solo el cual había implementado con un campo en la tabla, pero ahora me veo en la necesidad de mover de tabla el registro eliminado
ok por reglas del modelo no creo que sea porque los modelos se podría decir que son idénticos solo cambian en el nombre de la tabla, y si había intentado este método de echo deje el sabe dentro de un if y dentro de este puse el delete y me eliminaba pero no lo guardaba, de todas formas hare una revisión minuciosa del modelo nuevamente, y les cuento que tal, muchísimas gracias en verdad me están ayudando demasiado
Saludos, soy nuevo en esto, pero que tal si en ves de eliminar y crear un respaldo pruebas con agregar un campo mas a la tabla de la base de datos, llamado, por ejemplo “estado” que tengan todos por defecto el valor ‘1’, y en lugar de “Eliminar fisicamente” de la tabla al momento de hacer el delete solo cambias “ese estado = ‘D’” y al realizar la llamada a los datos filtras los que “estado” <> ‘D’, porque tampoco le veo sentido guardar algo y eliminarlo.
Ademas este proceso deberías implementarlo en un disparador (trigger) desde tu gestor de la base de datos, para no cargar la aplicación sino que sea el motor de la base de datos el encargado, es más óptimo.