Curso Laravel Página Web Administrable
¿Cómo implementar el CRUD para la tabla categoria y vistas Blade
La tabla categoria necesita de los métodos CRUD para poder editar, insertar, listar, eliminar con sus correspondientes vistas blade y laravelcollective.
La tabla categoria necesita de los métodos CRUD para poder editar, insertar, listar, eliminar con sus correspondientes vistas blade y laravelcollective.
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Categoria;
use Illuminate\Support\Str;
use Image;
use Session;
class CategoriaController extends Controller
{
public function index(){
$categorias = Categoria::all();
return view("admin.categoria.index",compact('categorias'));
}
public function create(){
return view('admin.categoria.create');
}
public function store(Request $request){
$categoria = new Categoria($request->all());
if($request->hasFile('urlfoto')){
$imagen = $request->file('urlfoto');
$nuevonombre = Str::slug($request->nombre).'.'.$imagen->guessExtension();
Image::make($imagen->getRealPath())
->resize(1024,null,function($constraint){ $constraint->aspectRatio(); })
->save( public_path('/img/categoria/'.$nuevonombre));
$categoria->urlfoto = $nuevonombre;
}
$categoria->slug = Str::slug($request->nombre);
$categoria->save();
return redirect('/admin/categoria');
}
public function update(Request $request,$id){
$categoria = Categoria::findOrFail($id);
$categoria->fill($request->all());
$foto_anterior = $categoria->urlfoto;
if($request->hasFile('urlfoto')){
$rutaAnterior = public_path('/img/categoria/'.$foto_anterior);
if(file_exists($rutaAnterior)){ unlink(realpath($rutaAnterior)); }
$imagen = $request->file('urlfoto');
$nuevonombre = Str::slug($request->nombre).'.'.$imagen->guessExtension();
Image::make($imagen->getRealPath())
->resize(1024,null,function($constraint){ $constraint->aspectRatio(); })
->save( public_path('/img/categoria/'.$nuevonombre));
$categoria->urlfoto = $nuevonombre;
}
$categoria->slug = Str::slug($request->nombre);
$categoria->save();
return redirect('/admin/categoria');
}
public function edit($id){
$categoria = Categoria::findOrFail($id);
return view('admin.categoria.edit',compact('categoria'));
}
public function show($id){
Session::put('categoria_id',$id);
return redirect('/admin/producto');
}
public function destroy($id){
$categoria = Categoria::findOrFail($id);
$borrar = public_path('/img/categoria/'.$categoria->urlfoto);
if(file_exists($borrar)){ unlink(realpath($borrar)); }
$categoria->delete();
return redirect('/admin/categoria');
}
}
VISTA BLADE
index.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
@include('admin.submenu')
<div class="col-sm-10">
<a href="{{route('categoria.create')}}" class="btn btn-success">NUEVO</a>
<table class="table table-striped">
<thead>
<th>Orden</th>
<th>Nombre</th>
<th>Acción</th>
</thead>
<tbody>
@forelse ($categorias as $item)
<tr>
<td>{{$item->orden}}</td>
<td>{{$item->nombre}}</td>
<td>
<a href="{{ route('categoria.show',$item->id)}}" class="btn btn-success">PRODUCTOS</a>
<a href="{{ route('categoria.edit',$item->id)}}" class="btn btn-success">EDITAR</a>
{!! Form::open(['method'=>'DELETE','route'=>['categoria.destroy',$item->id],'style'=>'display:inline']) !!}
{!! Form::submit('ELIMINAR',['class'=>'btn btn-success','onclick'=>'return confirm("ESTA SEGURO DE ELIMINAR")']) !!}
{!! Form::close() !!}
</td>
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
@endsection
create.blade.php
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<div class="row">
@include('admin.submenu')
<div class="col-sm-10">
{!! Form::open(['route'=>['categoria.store'],'method'=>'POST','files'=>true]) !!}
<div class="jumbotron">
<div class="form-group">
<label for="title">INGRESE TITLE</label>
{!! Form::text('title',null ,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="description">INGRESE DESCRIPTION</label>
{!! Form::text('description',null ,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="nombre">INGRESE NOMBRE</label>
{!! Form::text('nombre',null ,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="descripcion">INGRESE DESCRIPCIÓN</label>
{!! Form::text('descripcion',null ,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="orden">INGRESE ORDEN</label>
{!! Form::text('orden',null ,['class'=>'form-control']) !!}
</div>
<div class="form-group">
<label for="urlfoto">IMAGEN</label> <br>
<img src="/img/categoria/foto.jpg">
{!! Form::file('urlfoto') !!}
</div>
</div>
{!! Form::submit('GUARDAR',['class'=>'btn btn-success']) !!}
{!! Form::close() !!}
</div>
</div>
</div>
@endsection
edit.blade.php
@extends('layouts.app')
@section('content')
<div class="container-fluid">
<div class="row">
@include('admin.submenu')
<div class="col-sm-10">
{!! Form::open(['route'=>['categoria.update',$categoria],'method'=>'PUT','files'=>true]) !!}
<div class="jumbotron">
<div class="form-group">
<label for="title">INGRESE TITLE</label>
{!! Form::text('title',$categoria->title,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="description">INGRESE description</label>
{!! Form::text('description',$categoria->description,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="nombre">INGRESE NOMBRE</label>
{!! Form::text('nombre',$categoria->nombre,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="descripcion">INGRESE DESCRIPCIÓN</label>
{!! Form::text('descripcion',$categoria->descripcion,['class'=>'form-control','maxlength'=>'67']) !!}
</div>
<div class="form-group">
<label for="orden">INGRESE ORDEN</label>
{!! Form::text('orden',$categoria->orden,['class'=>'form-control']) !!}
</div>
<div class="form-group">
<label for="urlfoto">IMAGEN</label> <br>
<img src="/img/categoria/{{$categoria->urlfoto}}">
{!! Form::file('urlfoto') !!}
</div>
</div>
{!! Form::submit('GUARDAR',['class'=>'btn btn-success']) !!}
{!! Form::close() !!}
</div>
</div>
</div>
@endsection
1913 visitas
« Capítulo 14 – CRUD Páginas
Capítulo 16 – CRUD producto »
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar© Copyright Codea App | LATAM | 2020 - 2024