Laravel - metodo destroy con formulario

 
Vista:
Imágen de perfil de Charly
Val: 26
Ha aumentado 1 puesto en Laravel (en relación al último mes)
Gráfica de Laravel

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:
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');
Método destroy en ProductoController.php, donde ya he probado varias cosas:
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);
}
Vista destroy.blade.php:
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>
Botón en index.blade.php desde el que llamo al formulario destroy:
1
<a href="{{route('productos.destroy',$producto->id)}}" class="btn btn-danger">ELIMINAR</a>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Charly
Val: 26
Ha aumentado 1 puesto en Laravel (en relación al último mes)
Gráfica de Laravel

metodo destroy con formulario

Publicado por Charly (13 intervenciones) el 16/02/2018 07:52:59
Ya lo arreglé antes, era por culpa de las rutas que había escrito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar