php artisan make:model Pelicula -m
En database/migrations se ha creado el fichero crear_peliculas_table_xxx.php que modif:
public function up()
{
Schema::create('peliculas', function(Blueprint $table)
{
$table->increments('id');
$table->string('titulo');
$table->string('anno');
$table->string('director');
$table->timestamps();
});
}
En consola ejecutamos para crear esa tabla en la BD:
php artisan migrate
En App te ha creado el modelo Pelicula.php que modificamos:
protected $table = 'peliculas';
protected $fillable = ['titulo', 'anno', 'director'];
protected $guarded = ['id'];
En Routes/web.php creamos las rutas:
Route::get('pelicula/add_pelicula','PeliculaController@add_pelicula');
Route::get('pelicula/list_peliculas','PeliculaController@list_peliculas');
Route::resource('pelicula/guardar','PeliculaController@guardar');
Creamos desde consola el controlador:
php artisan make:controller PeliculaController
En App/Http/Controllers/PeliculaController modificamos:
use Illuminate\Http\Request;
use App\Pelicula as Pelicula;
class PeliculaController extends Controller
{
public function index(){
$peliculas = Pelicula::all();
return \View::make('list_peliculas',compact('peliculas'));
}
public function add_pelicula() {
// return \View::make('add_pelicula');
return view('add_pelicula');
}
public function list_peliculas() {
$peliculas = Pelicula::all();
return \View::make('list_peliculas',compact('peliculas'));
}
public function guardar(Request $request) {
$pelicula = new Pelicula;
$pelicula->create($request->all());
return redirect('pelicula/list_peliculas');
}
}
Creamos la vista standard de app.blade.php por si no está ya creada de antes:
<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>
Creamos la vista de add_pelicula.blade.php:
@extends('app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<form action="{{url('pelicula/guardar')}}" method="post">
{{ csrf_field() }}
Título: <input type="text" name="titulo"><br>
Año: <input type="text" name="anno"><br>
Director:<input type="text" name="director"><br>
<input type="submit">
</form>
</div>
</div>
</div>
@endsection
Creamos la vista de list_peliculas.blade.php:
@extends('app')
@section('content')
<div class="container">
<div class="row">
<a href="{{ url('pelicula/add_pelicula') }}" class="btn btn-primary">Añadir nueva película</a>
<hr>
<table class="table table-condensed table-striped table-bordered">
<thead>
<tr>
<th>Título</th>
<th>Año</th>
<th>Director</th>
</tr>
</thead>
<tbody>
@foreach($peliculas as $item)
<tr>
<td>{{ $item->titulo }}</td>
<td>{{ $item->anno }}</td>
<td>{{ $item->director }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endsection
No hay comentarios:
Publicar un comentario