Agregue catalogo y un poco de vistaUsuario

This commit is contained in:
2025-08-17 01:05:33 -03:00
parent eb61eabdd4
commit 7c0313bc49
6 changed files with 82 additions and 6 deletions
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use Illuminate\Http\Request;
class CatalogoController extends Controller
{
public function catalogo()
{
$productos = Product::all();
return view('catalogo', compact('productos'));
}
}
@@ -62,4 +62,9 @@ class ProductosController extends Controller
$producto->delete(); $producto->delete();
return redirect(route('productos.index')); return redirect(route('productos.index'));
} }
public function vistaUsuario($id){
$producto = Product::find($id);
return view('productos.vistaUsuario', compact('producto'));
}
} }
+41 -2
View File
@@ -1,6 +1,45 @@
<x-app> <x-appc>
<div class="max-w-6xl mx-auto px-4 py-8">
<h1 class="text-center text-2xl font-bold mb-8">CATÁLOGO</h1>
@if ($productos->count() > 0)
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6">
@foreach ($productos as $prod)
<div class="p-4 border rounded-lg shadow-md bg-white hover:shadow-lg transition">
{{-- Imagen si existe --}}
@if (!empty($prod->imagen))
<img src="{{ asset('storage/' . $prod->imagen) }}" alt="{{ $prod->name }}"
class="w-full h-40 object-cover rounded mb-4">
@else
<div class="w-full h-40 bg-gray-200 flex items-center justify-center rounded mb-4">
<span class="text-gray-500 text-sm">Sin imagen</span>
</div>
@endif
{{-- Nombre --}}
<h2 class="text-lg font-semibold text-gray-800">{{ $prod->nombre }}</h2>
{{-- Descripción corta --}}
@if (!empty($prod->descripcion))
<p class="text-sm text-gray-600 mt-2">{{ $prod->descripcion }}</p>
@endif
</x-app> {{-- Precio --}}
@if (!empty($prod->precio))
<p class="text-blue-600 font-bold mt-3">${{ number_format($prod->precio, 2, ',', '.') }}</p>
@endif
{{-- Botón --}}
<a href="{{ route('productos.vistaUsuario', $prod) }}"
class="mt-4 block w-full bg-blue-500 text-white py-2 rounded-lg text-center hover:bg-blue-600">
Ver producto
</a>
</div>
@endforeach
</div>
@else
<p class="text-center text-gray-600 mt-10">No hay productos disponibles.</p>
@endif
</div>
</x-appc>
+3 -1
View File
@@ -1,6 +1,8 @@
<x-appc>
<H1>BIENVENIDO {{ Auth::user()->name }} </H1> <H1>BIENVENIDO {{ Auth::user()->name }} </H1>
<a href="{{ route('catalogo') }}">Ir a catalogo</a>
<form action="{{ route('logout') }}" method="post"> <form action="{{ route('logout') }}" method="post">
@csrf @csrf
<button type="submit">Logout</button> <button type="submit">Logout</button>
</form> </form>
</x-appc>
@@ -0,0 +1,12 @@
<x-appc>
<div class="max-w-6xl mx-auto px-4 py-8 text-white">
<a href="{{ route('catalogo') }}">Volver a catalogo</a>
<h1>Titulo: {{ $producto->nombre }}</h1>
<p>
<b>Categoria:</b> {{ $producto->Categoria }}
</p>
<p>
{{ $producto->content }}
</p>
</div>
</x-appc>
+3 -1
View File
@@ -1,6 +1,7 @@
<?php <?php
use App\Http\Controllers\AuthController; use App\Http\Controllers\AuthController;
use App\Http\Controllers\CatalogoController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; use App\Http\Controllers\HomeController;
use App\Http\Controllers\LoginController; use App\Http\Controllers\LoginController;
@@ -46,4 +47,5 @@ Route::middleware(['auth'])->group(function () {
Route::delete('/productos/{id}', [ProductosController::class,'destroy'])->name('productos.destroy'); Route::delete('/productos/{id}', [ProductosController::class,'destroy'])->name('productos.destroy');
}); });
Route::vieq('catalogo','catalogo')->name('catalogo'); Route::get('/catalogo', [CatalogoController::class,'catalogo'])->name('catalogo');
Route::get('/productos/{id}/vistaUsuario', [ProductosController::class,'vistaUsuario'])->name('productos.vistaUsuario');