Inicio » Cursos » App para Pizzería con delivery

Curso App para Pizzería con delivery

Capitulo 4 ➜ Implementación del CRUD de Categorías

Implementación del CRUD de Categorías

Implementación del CRUD de Categorías

Modelo, Migración, controlador y vistas para gestionar la tabla categorías donde asignaremos dos: Pizzas y Bebidas.

Modelo, Migración, controlador y vistas para gestionar la tabla categorías donde asignaremos dos: Pizzas y Bebidas.

 

Ruta

Route::group(['prefix' => 'admin', 	'middleware' => ['auth','role:admin']], function() {
    // rutas para el administrador
    Route::resource('categoria', App\Http\Controllers\Admin\CategoriaController::class,["as"=>"admin"]);
});

 

Modelo

class Categoria extends Model
{
    use HasFactory;
    public $timestamps = false;
    protected $fillable = [
        'slug',
        'nombre'
    ];
}

 

Migración

Schema::create('categorias', function (Blueprint $table) {
            $table->id();
            $table->string('slug',15)->unique();
            $table->string('nombre',15);
        });

 

Controlador

<?php

namespace App\Http\Controllers\Admin;

use App\Models\Categoria;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

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());       
        $categoria->save();
        return redirect('admin/categoria');        
    }
    public function edit($id){
        $categoria = Categoria::find($id);        
        return view('admin.categoria.edit',compact("categoria"));
    }
    public function update(Request $request, $id){
        $categoria =Categoria::findOrFail($id);
        $categoria->fill($request->all());
        $categoria->save();
        return redirect('admin/categoria');        
    }
    public function destroy($id){
        $categoria=Categoria::findOrFail($id);
        $categoria->delete();
        return redirect('admin/categoria');
    }
}

 

Vista index.blade.php

@extends('layouts.admin')
@section('content')
<div class="container">
    <div class="row justify-content-center">
        @include("admin.menu")
        <div class="col-sm-8">
            <h1 class="mt-3 mb-3 fs-4">SECCIÓN CATÁLOGO</h1>
            <a href="{{route("admin.categoria.create")}}" class="btn btn-success">CREAR CATEGORÍA</a>
            @if ($categorias->count())
            <table class="table table-bordered mt-3">
                <tr>
                    <th>ID</th>
                    <th>NOMBRE</th>
                    <th>ACCIÓN</th>
                </tr>
                @forelse ($categorias as $c)
                <tr>
                    <td>{{$c->id}}</td>
                    <td>{{$c->nombre}}</td>
                    <td>
                        <a href="{{route("admin.categoria.show",$c->id)}}" class="btn btn-success">VER PRODUCTOS</a>
                        <a href="{{route("admin.categoria.edit",$c->id)}}" class="btn btn-success">EDITAR CATEGORIA</a>
                    </td>
                </tr>
                @empty
                    <tr><td></td></tr>
                @endforelse
            </table>
            @endif
        </div>
    </div>
</div>
@endsection

 

Vista create.blade.php

@extends('layouts.admin')
@section('content')
<div class="container">
    <div class="row justify-content-center">
    @include("admin.menu")
        <div class="col-sm-8">
            {!! Form::open(['route'=>'admin.categoria.store','method'=>'POST']) !!}
            <div class="form-group row">
                <div class="col-sm-6">
                    {!! Form::label('slug','Slug') !!}
                    {!! Form::text('slug',null,['class'=>'form-control','required']) !!}
                </div>
                <div class="col-sm-6">
                    {!! Form::label('nombre','Nombre') !!}
                    {!! Form::text('nombre',null,['class'=>'form-control','required']) !!}
                </div>
            </div>            
            <div class="form-group mt-3">
                <a href="javascript: history.go(-1)" class="btn btn-outline-primary">Regresar</a>
                {{ Form::submit('CREAR CATEGORIA',['class'=>'btn btn-success']) }}
            </div>
            {!! Form::close() !!}
        </div>
    </div>
</div>
@endsection

 

Vista edit.blade.php

@extends('layouts.admin')
@section('content')
<div class="container">
    <div class="row justify-content-center">
    @include("admin.menu")
        <div class="col-sm-8">
            {!! Form::open(['route'=>['admin.categoria.update',$categoria],'method'=>'PUT']) !!}
            <div class="form-group row">
                <div class="col-sm-6">
                {!! Form::label('slug','Slug') !!}
                {!! Form::text('slug',$categoria->slug,['class'=>'form-control','required']) !!}
                </div>
                <div class="col-sm-6">
                {!! Form::label('nombre','Nombre') !!}
                {!! Form::text('nombre',$categoria->nombre,['class'=>'form-control','required']) !!}
                </div>
            </div>
            <div class="form-group mt-3">
                <a href="javascript: history.go(-1)" class="btn btn-outline-primary">Regresar</a>
                {{ Form::submit('GUARDAR CATEGORIA',['class'=>'btn btn-success']) }}
            </div>
            {!! Form::close() !!}
        </div>
    </div>
</div>
@endsection

 

 


675 visitas

Sigue con el curso: Capítulo 5 – Implementación CRUD Productos

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Descargar ahora

Más cursos que pueden interesarte

Más cursos

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023