Capitulo 4 del Módulo 2 Panel de Administración

➜ 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

 

 


1504 visitas

Descarga el código del proyecto

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

Comprar

¡Qué aprenderás?

tooltip bs-tooltip-top bs-tooltip-end bs-tooltip-bottom bs-tooltip-start show fade tooltip-inner

Codea Applications

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