Error updating table in Yii 2

0

Good afternoon friends, I come to you to help me make an update to a table in yii 2, I show them the code of my controller so they can give me suggestions:

    public function actionCancelarconsulta(){    

// asigno a  variables los datos que utilizare para la actualizacion       
        $fecha = date('Y-m-d H:i:s');        
        $idActualiza = Yii::$app->user->identity->id;
        $nombreActualiza = Yii::$app->user->identity->nombre;
        $apellidosActualiza = Yii::$app->user->identity->apellidos;

// aqui solo concateno el id y el nombre y apellidos de quien esta realizando la actualizacion
        $actualizadoPor = $idActualiza." - ".$nombreActualiza." ".$apellidosActualiza;

// Estos son los campos que recojo de mi vista
        $request = Yii::$app->request;
        $idConsulta = $request->post('idConsulta');
        $motivoCancelacion = $request->post('motivoCancelacion');

// Consulto mi tabla de nombre tratamiento
        $eliminaConsulta = Tratamiento::find()->where(['id' => $idConsulta])->one();  

// verifico que el campo de descripcion no este vacio, si trae datos entra a la operacion
        if (!empty($motivoCancelacion)) {

//Aqui es donde asigno los valores a los campos que deseo actualizar
            $eliminaConsulta->estatus = 2;
            $eliminaConsulta->actualizadoPor = $actualizadoPor;
            $eliminaConsulta->motivoCancelacion = $motivoCancelacion;
            $eliminaConsulta->fechaCancelacion = $fecha;

// si se inserta procedo a la vista principal (Tabla general)
            if ($eliminaConsulta->update()) {

                $searchModel = new TratamientoSearch();
                $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

                return $this->render('index', [
                    'searchModel' => $searchModel,
                    'dataProvider' => $dataProvider,
                ]);

// sino muestro el error (Siempre cae en esta condicion y no se actualiza el registro)                
            }else{
                echo "No se inserto";

            }

// si el campo motivoCancelacion no trae datos lo redirecciono a la misma vista con un mensaje de advertencia
        }else{
            $table = Tratamiento::find()->where(['id' => $idConsulta])->one();
            $msg = "campoincompleto";
            return $this->render('cancelarconsulta', array(
                'idConsulta' => $idConsulta,
                'table' => $table,
                'msg' => $msg,
                ));
        }

    }

    public function actionAsignarnumconsultas($id){

        #$totalConsultas = Tratamiento::find()->where(['idPaciente' => $id])->count();
        $totalConsultas = 1;
        if ($totalConsultas == 1) {
            echo "<option value='primera vez' >Primera Vez</option>";
        }elseif($totalConsultas > 1){
            echo "<option value='subsecuente' >Subsecuente</option>";
        }else{
            echo "<option> --- </option>";
        }

    }

The detail is not updated and it always happens to the error of not updated.

Cabe mentions that in different occasions I have updated in this way, but in this occasion I can not see where the error could be ... I would appreciate very much if you would lend me a hand.

Thank you in advance

    
asked by Eliobeth Ruiz Hernandez 06.07.2017 в 19:01
source

1 answer

-1

The most likely is that you have validation errors which are defined in your model, to know you can do the following:

if ($eliminaConsulta->validate() && $eliminaConsulta->update()) {

        }else{
            echo "No se inserto";
            // Esto te mostrará un arreglo de errores de validación.
            var_dump($eliminaConsulta->getErrors());
            die;

        }
    
answered by 26.12.2017 в 01:43