Foros del Web » Programando para Internet » PHP »

function delete en CAKEPHP 1.3

Estas en el tema de function delete en CAKEPHP 1.3 en el foro de PHP en Foros del Web. Hola, estoy haciendo una aplicacion que gestiona altas, edita y borra registros de una base de datos. Con las funciones altas y edit no he ...
  #1 (permalink)  
Antiguo 26/07/2011, 04:51
 
Fecha de Ingreso: octubre-2010
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
function delete en CAKEPHP 1.3

Hola, estoy haciendo una aplicacion que gestiona altas, edita y borra registros de una base de datos. Con las funciones altas y edit no he tenido problema pero con la de borrar sí.

Para el borrado no me he creado una vista como para las altas y el editar, simplemente en la vista index.ctp he creado una opcion de borrado y esa llama a javascripts que te pregunta si estás seguro, es lo siguiente:

<?php echo $html->link('Borrar', array('action'=>'delete', $concepto['Concepto']['id']), null, '¿Estás Seguro?'); ?>

Luego en el controller he creado la function delete tal como la que sigue:

function delete($id = null) {

if (!$id) {

$this->Session->setFlash('id Invalida para Concepto');

$this->redirect(array('action'=>'index'), null, true);

}

if ($this->Concepto->del($id)) {

$this->Session->setFlash('Concepto #'.$id.' borrado');

$this->redirect(array('action'=>'index'), null, true);

}
}

El problema está en que cuando le doy a la acción de javascriptis ¿Estas seguro? para que me lo borre me sale el siguiente error:

SQL Error: 1064: You have an error in your SQL syntax;

Error: The view for ConceptosController::delete() was not found.

El ultimo error me dice que no he creado la vista delete(). ¿Es necesario crearlo?, en cakephp 1.2 he hechos cosas como esa y no he creado la vista y me ha funcionado.

Gracias de antemano
  #2 (permalink)  
Antiguo 26/07/2011, 07:45
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: function delete en CAKEPHP 1.3

Saludos yo tambien estoy empezando con esto y revisando la documentación de The CakePhp 1.3 book en Tutorials and Examples vi este ejemplo

11.1.11 Deleting Posts

Next, let's make a way for users to delete posts. Start with a delete() action in the PostsController:

function delete($id) {
if ($this->Post->delete($id)) {
$this->Session->setFlash('The post with id: ' . $id . ' has been deleted.');
$this->redirect(array('action' => 'index'));
}
}

donde se cambia solamente "del" de CakePhp 1.2 por "delete". y funciona perfectamente.
  #3 (permalink)  
Antiguo 26/07/2011, 09:00
 
Fecha de Ingreso: octubre-2010
Mensajes: 16
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: function delete en CAKEPHP 1.3

He sustituido en el controller el nombre de la function "delete" por "del"

function del($id = null) {
if (!$id) {
$this->Session->setFlash('id Invalida para Concepto');
$this->redirect(array('action'=>'index'), null, true);
}
if ($this->Concepto->del($id)) {
$this->Session->setFlash('Concepto #'.$id.' borrado');
$this->redirect(array('action'=>'index'), null, true);
}
}

luego he sustituido:

<?php echo $html->link('Borrar', array('action'=>'delete', $concepto['Concepto']['id']), null, '¿Estás Seguro?'); ?>

por este otro

<?php echo $html->link('Borrar', array('action'=>'del', $concepto['Concepto']['id']), null, '¿Estás Seguro?'); ?>


Pero sigue dandome el error de que no existe la vista ahora llamada "del"
  #4 (permalink)  
Antiguo 27/07/2011, 20:10
 
Fecha de Ingreso: julio-2011
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: function delete en CAKEPHP 1.3

Hola parece que no se entendió bien la explicación pero mira en base a tu primer codigo tendrias que modificar solamente la parte de la funcion delete de esta forma:
Código PHP:
Ver original
  1. function delete($id = null) {
  2.  
  3. if (!$id) {
  4.     $this->Session->setFlash('id Invalida para Concepto');
  5.     $this->redirect(array('action'=>'index'), null, true);
  6. }
  7.  
  8.  if ($this->Concepto->delete($id)) {
  9.      $this->Session->setFlash('Concepto #'.$id.' borrado');
  10.      $this->redirect(array('action'=>'index'), null, true);
  11. }
  12. }

reemplazando "del" de $this->Concepto->del($id) por "delete" y dejando el resto del codigo igual; no se necesita crear la vista.

Última edición por maxr96; 27/07/2011 a las 20:29

Etiquetas: cakephp, delete, function, html, registro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:19.