metodo destroy con formulario
Publicado por Charly (13 intervenciones) el 12/02/2018 16:04:13
Estoy creando un crud y me funciona todo excepto el borrar:
En el index tengo la rejilla con los registros, en cada uno hay dos botones (editar y eliminar).
Con cada uno tengo que ir a un formulario en el que me tienen que aparecer rellenados los campos con los datos de ese registro. El "editar" me funciona bien, pero el "eliminar", no es que no me funcione el método destroy del controlador, sino que ni siquiera me lleva al formulario eliminar para poder eliminar.
Creo que el problema esta en las rutas, pero no se donde. Pongo el código:
web.php:
Método destroy en ProductoController.php, donde ya he probado varias cosas:
Vista destroy.blade.php:
Botón en index.blade.php desde el que llamo al formulario destroy:
En el index tengo la rejilla con los registros, en cada uno hay dos botones (editar y eliminar).
Con cada uno tengo que ir a un formulario en el que me tienen que aparecer rellenados los campos con los datos de ese registro. El "editar" me funciona bien, pero el "eliminar", no es que no me funcione el método destroy del controlador, sino que ni siquiera me lleva al formulario eliminar para poder eliminar.
Creo que el problema esta en las rutas, pero no se donde. Pongo el código:
web.php:
1
2
3
4
5
6
Route::get('/',function () {
return view('productos/index');
});
//rutas para todo el crud:
Route::resource('productos','ProductoController');
Route::view('productos.buscar','productos.buscar');
1
2
3
4
5
6
7
8
public function destroy($id){
\App\Producto::destroy($id);
return redirect()->route('producto.index');
//$producto=\App\Producto::find($id);
//$producto->destroy($id);
//return redirect()->route('producto.destroy',['id'=>$id]);
//return view('productos.destroy')->with('producto',$producto);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
function conectar(){
$con=mysqli_connect("localhost","root","","dam2d-laravel");
return $con;
}
function desconectar(){
mysqli_close(conectar());
}
conectar();
if(isset($_GET['eliminar'])){
eliminar();
header('Location:index.php');
}
if(isset($_GET['volver'])){
header('Location:index.php');
}
$id=isset($_GET['id']) ? $_GET['id'] : '';
$nombre=isset($_GET['nombre']) ? $_GET['nombre'] : '';
$precio=isset($_GET['precio']) ? $_GET['precio'] : '';
function eliminar(){
$id=$_GET['id'];
$nombre=$_GET['nombre'];
$precio=$_GET['precio'];
$esta=false;
if(conectar()->connect_error){
die('Error de conexion: '.conectar()->connect_error);
}else{
$sql="SELECT * FROM productos where id='".$id."'";
$resul=mysqli_query(conectar(),$sql);
while($linea=mysqli_fetch_array($resul)){
$esta=true;
}
if($esta==false){
echo "No existe ningún producto con el id ".$id;
}
if(!mysqli_query(conectar(),"DELETE FROM productos WHERE id='".$id."'")){
echo "No se ha eliminado el producto!".mysqli_error(conectar());
}else{
echo "Producto eliminado!";
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Eliminar Producto</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class='container'>
<div class='jumbotron'>
<h1>Eliminar Producto</h1>
<p>Introduce todos los datos para eliminar un producto en la base de datos.</p>
</div>
<!--<form name='formularioeliminar' action='' method='get'>-->
{{Form::open(['route'=>'productos.destroy','method'=>'DELETE'])}}
<div class='form-group'>
{{csrf_field()}}
<label for='id'>Introduce el id del producto:</label>
<input type='number' class='form-control' placeholder='Introduce el id' name='id' value="{{$producto->id}}"><br>
<label for='id'>Introduce el nombre del producto:</label>
<input type='text' class='form-control' placeholder='Introduce el nombre' name='nombre' value="{{$producto->nombre}}" size=30><br>
<label for='precio'>Introduce el precio del producto:</label>
<input type='decimal' class='form-control' placeholder='Introduce el precio' name='precio' value="{{$producto->precio}}"><br>
</div>
<div class='botons-group'>
<!--<input type='submit' name='eliminar' value='ELIMINAR'>-->
<!--<button type='submit' class='btn btn-primary'>Eliminar</button>-->
{{Form::submit('Eliminar',['class'=>'btn btn-primary'])}}
<input type='submit' name='volver' value='VOLVER'>
</div>
<!--</form>-->
{{Form::close()}}
</div>
<?php
desconectar();
?>
</body>
</html>
1
<a href="{{route('productos.destroy',$producto->id)}}" class="btn btn-danger">ELIMINAR</a>
Valora esta pregunta


0