LaravelCollective: Forms ejemplos

CREATE:
{!! Form::open(array('route' => 'productos.store')) !!}
{{ csrf_field() }}
<p>
{!! Form::label('nombre_producto', 'Nombre producto:') !!}
{!! Form::text('nombre_producto', null, array('placeholder' => 'Nombre del producto','class' => 'form-control')) !!}
</p>
<p>
{{ Form::submit('Modificar producto', array('type' => 'submit', 'class' => 'btn btn-default btn-sm', 'onclick' => 'return checkFormProd()')) }}
</p>
{!! Form::close() !!}

EDIT:
{!! Form::model($producto, ['method' => 'PATCH','route' => ['productos.update', encrypt($producto->id)], 'files' => true]) !!}
{{ csrf_field() }}
<p>
{!! Form::label('nombre_producto', 'Nombre producto:') !!}
{!! Form::text('nombre_producto', null, array('placeholder' => 'Nombre producto','class' => 'form-control')) !!}
</p>
<p>
{{ Form::submit('Modificar producto', array('type' => 'submit', 'class' => 'btn btn-default btn-sm', 'onclick' => 'return checkFormProd()')) }}
</p>
{!! Form::close() !!}

DELETE
{!! Form::open(['method' => 'DELETE','route' => ['productos.destroy', encrypt($producto->id)]]) !!}
    {{ csrf_field() }}
    <p>{{ Form::submit('Borrar producto', array('type' => 'submit', 'class' => 'btn btn-default btn-sm')) }}</p>
{!! Form::close() !!}

PD: Aunque la forma más correcta de hacer el delete es mejor mandarlo con un onclick a un JS para así poder hacer un confirm.
COMBO:
En el controller tenemos por ejemplo: $colors = [
'red' => 'Rojo',
'yellow' => 'Amarillo',
'green' => 'Verde'
];
Y se lo pasamos a la view donde el combo se genera:
{!! Form::label('color', 'Color:') !!}
{!! Form::select('color', $colors, null, ['class' => 'form-control']) !!}

Una de las mejores cosas de LaravelCollective es que no hay que indicarle qué elemento está selected en el combo pues a partir del valor que tenga en la BD ya lo deja seleccionado por tanto se usa exactamente lo mismo para la view de create que la de edit.

Por tanto en ambas views se puede hacer un include como por ejemplo:
@include('admin.categories.partials.form')
Para rellenar un combo con el valor de otra tabla en el controller no se puede usar el método all() sino pluck:
$categories = Category::pluck('name', 'id');

Y luego en la view:
{!! Form::label('category_id', 'Categoría:') !!}
{!! Form::select('category_id', $categories, null, ['class' => 'form-control']) !!}

CHECKBOX: @foreach ($tags as $tag)
<label class="mr-2">
{!! Form::checkbox('tags[]', $tag->id, null) !!}
{{ $tag->name }}
</label>
@endforeach

RADIOS:
<label>
{!! Form::radio('status', 1, true) !!}
Borrador
</label>
<label>
{!! Form::radio('status', 2) !!}
Publicado
</label>

TEXTAREA: {!! Form::label('extract', 'Extracto:') !!}
{!! Form::textarea('extract', null, ['class' => 'form-control']) !!}

CAMPO OCULTO: {!! Form::hidden('user_id', auth()->user()->id) !!}
FILE:
{!! Form::file('file', ['class' => 'form-control-file', 'accept' => 'image/*']) !!}

No hay comentarios:

Publicar un comentario