use App\Cliente;
class ClienteController extends Controller
{
public function index()
{
//
}
public function create()
{
$arr = array();
return \View::make('cliente/create',compact('arr'));
break;
}
public function store(Request $request)
{
$item = new Cliente;
$item->create($request->all());
return redirect('cliente/show');
}
public function show($id)
{
$arr = Cliente::all();
return \View::make('cliente/show',compact('arr'));
break;
}
public function edit($id)
{
$item = Cliente::find($id);
return \View::make('cliente/edit',compact('item'));
}
public function update(Request $request, $id)
{
$item = Cliente::find($id);
$item->nombre = $request->nombre;
$item->apellidos = $request->apellidos;
$item->save();
return redirect('cliente/show');
}
public function destroy($id)
{
$item = Cliente::find($id);
$item->delete();
return redirect('cliente/show');
}
public function search(Request $request) {
$arr = Cliente::where('nombre','like','%'.$request->buscando.'%')
->orWhere('apellidos','like','%'.$request->buscando.'%')
->get();
return \View::make('cliente/show',compact('arr'));
break;
}
}
En Routes/web:
Route::resource('/cliente','ClienteController');
Route::post('/cliente/search', 'ClienteController@search');
Crear en resources/views/app.blade.php: // va a ser la estructura común para el resto de las vistas
<html>
<head>
@section('head')
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
@show
</head>
<body>
<div class="container">
@yield('content')
</div>
@section('footer_scripts')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
@show
</body>
</html>
En resources/views/cliente/show.blade.php:
@extends('app')
@section('content')
<div class="container">
<div class="row">
<form method="post" action="{{url('cliente/search')}}">
{{ csrf_field() }}
<div class="form-group">
<input type="text" class="form-control" name="buscando">
</div>
<button type="submit" class="btn btn-default">Buscar</button>
</form>
<hr>
<a href="{{ url('cliente/create') }}" class="btn btn-primary">Añadir nuevo</a>
<hr>
<table class="table table-condensed table-striped table-bordered">
<thead>
<tr>
<th>Nombre</th>
<th>Apellidos</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($arr as $item)
<tr>
<td>{{ $item->nombre }}</td>
<td>{{ $item->apellidos }}</td>
<td>
<!-- <a class="btn btn-primary btn-xs" href="{{ url('cliente/'.$item->id.'/edit')}}" >MODIFICAR</a> -->
<form method="post" action="{{route('cliente.edit', $item->id)}}">
{{ csrf_field() }}
<input name="_method" type="hidden" value="GET">
<input type="submit" value="MODIFICAR">
</form>
</td>
<td>
<form method="post" action="{{route('cliente.destroy', $item->id)}}">
{{ csrf_field() }}
<input name="_method" type="hidden" value="DELETE">
<input type="submit" value="BORRAR" onclick="return confirm('¿Estás seguro de querer borrarlo?');">
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
En resources/views/cliente/create.blade.php:
<form action="{{url('cliente')}}" method="post"> <!-- No hay que poner cliente/store -->
{{ csrf_field() }}
Nombre: <input type="text" name="nombre"><br>
Apellidos: <input type="text" name="apellidos"><br>
<input type="submit">
</form>
En resources/views/cliente/edit.blade.php:
<form action="{{route('cliente.update', $item->id)}}" method="post">
{{ csrf_field() }}
<input name="_method" type="hidden" value="PUT">
Nombre: <input type="text" name="nombre" value="{{$item->nombre}}"><br>
Apellidos: <input type="text" name="apellidos" value="{{$item->apellidos}}"><br>
<input type="submit">
</form>
No hay comentarios:
Publicar un comentario