Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/01/2016, 21:50
x_atrix
 
Fecha de Ingreso: enero-2016
Mensajes: 71
Antigüedad: 8 años, 3 meses
Puntos: 14
Respuesta: Evitar eliminar registros con php

Necesitas un metodo de validacion del nombre.

Ejemplo (dentro de tu modelo ya que es responsabilidad de un modelo saber si un nombre existe).
Código PHP:
public function existeNombre($nombre) {
    
$query 'SELECT rolId FROM roles WHERE rolNombre = ?';

    
$consulta $this->getBD()->prepare($query);
    
$consulta->execute([$nombre]);

    
// Indicar si hay algo en la base de datos con este nombre
    
return $consulta->rowCount() > 0;

Dentro de los dos metodos del controlador deberias comprobar si este nombre ya existe pero con una diferencia. Para el caso de modificar primero comprueba que no tenga el mismo nombre de antes (basicamente no se intenta actualizar con el mismo nombre).

Para el caso de alta:
Si ya existe guardar en sesion el mensaje de que ya existe.

Para el caso de actualizar:
Si el nombre es el mismo que el anterior mostrar que no se modificó nada, si el nombre es diferente, usar el mismo metodo de nombre existente y si ya existe mostrar error de que el nombre ya existe en caso contrario, todo esta ok...

Como lo ves para implementarlo tu esto?

TIP* Segun lo tienes estructurado necesitaras un metodo que te diga el nombre del rol buscando por ID para saber si se ha cambiado o no...

Para mejorar:
1. Piensa un solo método para guardar sin importar si existe o no el Rol e internamente la clase RolModel debe saber si es un insert o es un update. Esta lógica no le pertenece al controlador...
2. Seria mas legible algo asi:
Código PHP:
$rol = new Rol(0$_POST['txtnom']);
$rol->guardar(); 
que esto otro:
Código PHP:
$rol = new Rol(0$_POST['txtnom']);
$this->modelo->guardame($rol);