Inicio » Cursos » Laravel Página Web Administrable

CRUD Carrusel | Curso Laravel Página Web Administrable

Muy similar a los demás CRUD implementados en las lecciones pasadas, con su métodos y vistas para gestionar las imágenes del carrusel de la portada inicial

Lección 21: CRUD Carrusel

Muy similar a los demás CRUD implementados en las lecciones pasadas, con su métodos y vistas para gestionar las imágenes del carrusel de la portada inicial

<?php

namespace App\Http\Controllers\Admin;

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

use Image;

class CarruselController extends Controller
{
    
    
    public function index(){
        $carrusels = Carrusel::all();
        return view("admin.carrusel.index",compact('carrusels'));
    }
    public function create(){
        return view('admin.carrusel.create');
    }
    public function store(Request $request){

        $carrusel = new carrusel($request->all());
        
        if($request->hasFile('urlfoto')){

            $imagen = $request->file('urlfoto');
            $nuevonombre = 'artesanias_'.time().'.'.$imagen->guessExtension();
            Image::make($imagen->getRealPath())
            ->fit(1200,450,function($constraint){ $constraint->upsize();  })
            ->save( public_path('/img/carrusel/'.$nuevonombre));

            $carrusel->urlfoto = $nuevonombre;
        }
        $carrusel->save();
        return redirect('/admin/carrusel');

    }
    public function update(Request $request,$id){

        $carrusel = carrusel::findOrFail($id);
        $carrusel->fill($request->all());
        $foto_anterior     = $carrusel->urlfoto;


        if($request->hasFile('urlfoto')){

            $rutaAnterior = public_path('/img/carrusel/'.$foto_anterior);
            if(file_exists($rutaAnterior)){ unlink(realpath($rutaAnterior)); }

            $imagen = $request->file('urlfoto');
            
            $nuevonombre = 'artesanias_'.time().'.'.$imagen->guessExtension();
            Image::make($imagen->getRealPath())
            ->fit(1200,450,function($constraint){ $constraint->upsize();  })
            ->save( public_path('/img/carrusel/'.$nuevonombre));

            $carrusel->urlfoto = $nuevonombre;
        }
       
        $carrusel->save();
        return redirect('/admin/carrusel');
    }

    public function edit($id){
        $carrusel = carrusel::findOrFail($id);
        return view('admin.carrusel.edit',compact('carrusel'));
    }

    public function destroy($id){
        $carrusel = carrusel::findOrFail($id);
        $borrar = public_path('/img/carrusel/'.$carrusel->urlfoto);
        if(file_exists($borrar)){ unlink(realpath($borrar)); }
        $carrusel->delete();
        return redirect('/admin/carrusel');
    }
}

VISTAS 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('carrusel.create')}}" class="btn btn-success">NUEVO</a>
            <table class="table table-striped">
                <thead>
                    <th>Orden</th>
                    <th>Imagen</th>                
                    <th>Acción</th>
                </thead>
                <tbody>
                    @forelse ($carrusels as $item)
                    <tr>
                        <td>{{$item->orden}}</td>
                        <td><img src="/img/carrusel/{{$item->urlfoto}}" width="300"></td>
                        <td>
                            <a href="{{ route('carrusel.edit',$item->id)}}" class="btn btn-success">EDITAR</a>
                            {!! Form::open(['method'=>'DELETE','route'=>['carrusel.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'=>['carrusel.store'],'method'=>'POST','files'=>true]) !!}

            <div class="jumbotron">
               


                <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="link">INGRESE LINK</label>
                    {!! Form::text('link',null ,['class'=>'form-control']) !!}
                </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/carrusel/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'=>['carrusel.update',$carrusel],'method'=>'PUT','files'=>true]) !!}
            <div class="jumbotron">       
                <div class="form-group">
                    <label for="descripcion">INGRESE DESCRIPCIÓN</label>
                    {!! Form::text('descripcion',$carrusel->descripcion,['class'=>'form-control','maxlength'=>'67']) !!}
                </div>
                <div class="form-group">
                    <label for="link">INGRESE LINK</label>
                    {!! Form::text('link',$carrusel->link ,['class'=>'form-control']) !!}
                </div>
                <div class="form-group">
                    <label for="orden">INGRESE ORDEN</label>
                    {!! Form::text('orden',$carrusel->orden,['class'=>'form-control']) !!}
                </div>
                <div class="form-group">
                    <label for="urlfoto">IMAGEN</label> <br>
                    <img src="/img/carrusel/{{$carrusel->urlfoto}}">
                    {!! Form::file('urlfoto') !!}
                </div>
            </div>           
            {!! Form::submit('GUARDAR',['class'=>'btn btn-success']) !!}
            {!! Form::close() !!}
        </div>
    </div>
</div>
@endsection

 


1457 visitas

Curso Laravel Página Web Administrable

Curso Laravel Página Web Administrable

Descarga el código fuente del proyecto

USD 12.00 37.00


COMPRAR CURSO

Codea App
Codea App FullStack

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

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2022