CRUD: Altas

En routes->web
Route::resource('cineastas', 'CineastasController');

En CineastasController:
public function create() {
        return view('cineastas/formCreate');
    }

    public function store(Request $request) {
        request()->validate([
            'nombre' => 'required'
        ]);

        if (!isset(request()->es_oscar_winner)) { // si el checkbox no se marca no envia nada
            request()->es_oscar_winner = 0;
        }
        if (!isset(request()->decada_oscar)) { // si el radio no se marca no envia nada
            request()->decada_oscar = 0;
        }

        if (isset(request()->fotoCineasta)) { // puede que no elija nada en el campo file
            request()->validate([
                'fotoCineasta' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            ]);

            $nomImagen = rand(1, 999) . '_' . request()->fotoCineasta->getClientOriginalName();
            request()->fotoCineasta->move(public_path('images'), $nomImagen);

            Cineasta::create([
                'nombre' => $request->nombre,
                'fotoCineasta' => $nomImagen,
                'es_oscar_winner' => $request->es_oscar_winner,
                'decada_oscar' => $request->decada_oscar
            ]);
        }
        else {
            Cineasta::create([
                'nombre' => $request->all()["nombre"],
                'es_oscar_winner' => $request->all()["es_oscar_winner"]
            ]);
        }

        return redirect()->route('cineastas.index')
            ->with('success','Se ha insertado correctamente el actor');
}

Si no se quiere usar create tb se puede hacer:
$cineastaAux = new Cineasta;
$cineastaAux->nombre = $request->nombre;
$cineastaAux->loquesea = $request->loquesea;
$cineastaAux->save();

En la vista cineastas/formCreate.blade.php:
@include('header_edc')

<?php
$arrDecada = array('1920', '1930', '1940', '1950', '1960', '1970', '1980', '1990', '2000', '2010');
?>
<h1>Alta Cineasta</h1>
{!! Form::open(array('route' => 'cineastas.store', 'files'=>true)) !!}
    {{ csrf_field() }}
    <p>Nombre: <input type="text" name="nombre"></p>
    <p>Es oscar winner: {{ Form::checkbox('es_oscar_winner', '1') }}</p>
    <p>Década del Oscar:<br>
        @foreach ($arrDecada as $item)
            {{ Form::radio('decada_oscar', $item) }} {{ $item }}<br>
        @endforeach
    </p>

    <p>{!! Form::file('fotoCineasta', array('class' => 'form-control')) !!}</p>

    <p><input type="submit" value="Dar de alta cineasta"></p>
{!! Form::close() !!}

@include('footer_edc')

No hay comentarios:

Publicar un comentario