No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Introducción a Laravel 6

Curso de Introducción a Laravel 6

Profesor Italo Morales F

Profesor Italo Morales F

Vista index y botones de acción

21/37
Recursos

Aportes 26

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Muy bonito me va quedando =>

SI les aparece el error a continuacion en laravel 8, al momento de ir al index del post
**Target class [Http\Controllers\Backend\PostController] does not exist.
**
en las rutas pueden cambiar la ruta de la siguiente manera

use App\Http\Controllers\Backend\SubtipoController;
Route::resource('/posts', PostController::class)
    ->middleware('auth')
    ->except('show');

En #Laravel 8 la ruta quedaria de la siguiente manera:

Route::resource('posts', App\Http\Controllers\Backend\PostController::class)->middleware('auth')
->except('show');

RESUMEN
Index administrativo
A) Rutas
B)Controller
C)Vistas

A)"web.php 
Route::resource("/posts", "Backend\PostController")
    ->middleware('auth')
    ->except("show"); //x seguridad



B)"Controller. 
yase que tenemos un PostController conectado con Post y esta vacio.. eliminalo porque lo vamos a crear dentro de la carpeta Http/Controllers/Backend/PostController.php


sudo php artisan make:controller Backend/PostController --resource --model=Post
"PostController.php
    public function index()
    {
        $posts = Post::latest()->get();
        return view("posts.index", compact('posts'));} //envia los datos a la 		vista //
    

C)

AHORA SI HACEMOS LOGIN NOS LLEVA A /home , que es un dashboard
 ahi vamos a crear un boton que nos lleve a los articulos
"resources/views/layout/app.blade.php
//1 si sos invitado de te lleva al register
//2 si pasaste el auth----
 @guest
                            <li class="nav-item">
                                <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                            </li>
                            @if (Route::has('register'))//1
                                <li class="nav-item">
                                    <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                                </li>
                            @endif
                        @else //2
                            <li class="nav-item"> 
                                <a href="{{route('posts.index')}}" class="nav-link">
                                    Articulos
                                </a>
                            </li>
                            <li class="na

//agregamos el <li> con el link a posts.index
//ya tenemos el boton en el dashboard de admin

Ahora creamos un 
-un container con titulo Articulos y un boton de creacion
-en su interior arriba tiene 
ID TITLE Y UN BOTON DE CREACION Y OTRO DE ELIMINACION
-"resources/views CREAMOS CARPETA POSTS
  //resources/views/index.blade.php


//encabezado container
  <div class="card-header">
                    Articulos
                    <a href="{{ route('posts.create')  }}" class="btn btn-sm btn-primary float-right">Crear</a>// posts.index es el nombre de la ruta 															que devuelve los posts en el 															method index de  PostController-->
                </div>

//container body

 	<div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif

//parte superior ID TITLULO  
                    <table class="table">
                        <thead>
                            <tr>
                                <th>ID</th>
                                <th>TITULO</th>
                                <th colspan="2"> &nbsp; </th>
                            </tr>
                        </thead>
                        

//CADA ELEMENTO TIENE el post id y el post title y botones para editar y eliminar
                        <tbody>
                            @foreach($posts as $post)
                                <tr>
                                    <td>{{$post->id}}</td>
                                    <td>{{$post->title}}</td>
                                    <td>
                                        <a href="{{ route('posts.edit', $post) }}" class="btn btn-sm btn-primary">Editar</a>
                                    </td>
                                    <td>
                                        <form action="{{ route('posts.destroy',$post) }}" method="POST">
                                            @csrf
                                            @method("DELETE")
                                            <input 
                                                type="submit" 
                                                value="Eliminar" 
                                                class="btn btn-danger"
                                                onclick="return confirm('Deseas eliminar el Articulo?')"
                                            >   
                                        </form>
                                    </td>

                                </tr>
                            @endforeach

                        </tbody>
                    
                    </table>
                </div>
	 </div>
 </div>

Este profesor es super didáctico.
@Italomoralesf.

En algunos momentos del curso, no se entiende muy bien que se está haciendo, sólo que él está haciendo algo y al final apenas nos damos cuenta que era lo que estabamos haciendo.

Clase propia de bootstrap por supuesto xD

En nibuti 5:57, si están con Laravel 9, bootstrap es 5, en ese caso el boton “Crear” no se alinea a la derecha pues float-right está deprecado en BS 5. Usar float-end

<a href="{{ route('posts.index') }}" class="btn btn-sm btn-primary float-end">Crear</a>

si están utlizando bootstrap 5.1, deben poner “float-end” en el botón de crear post.

<a href="{{ route('posts.create') }}" class="btn btn-sm btn-primary float-end">Crear</a>

grupo de rutas protegidas
Route::middleware([‘auth’])->group(function () {
.//tus rutas
});

en lugar de usar el ->middleware(‘auth’) por cada ruta.

Si por algún motivo les sale el siguiente error
ErrorException Undefined variable: posts - $posts is undefined.
Lo solucioné cambiando estas lineas del PostController.php

$posts = Post::latest()->get();
 return view('posts.index', compact($posts));

Por las siguientes ->

$posts = Post::all();
  return view ('posts.index', compact('posts'));

#avance

Es excelente toda la información que nos dan en el curso.

Lo mas demorado es trabajar en las vistas para que se ven decentes.
Y sin embargo veo que me quedo igual que otro companero ! 🤣

.

si quieren saber algunos de donde o como porque pone posts.edit o posts.destroy,
pueden ver que las rutas que reamos con

Route::resource('posts', 'Backend\PostController')
->middleware('auth')
->except('show');

esas lineas nos generan las urls de un crud ademas que les añade un name a la ruta como lo emos visto en clases pasadas, si quieren ver que name tiene la ruta puede utilizar este comando

php artisan route:list

lo que les mostrara esto

Al crear la tabla dentro del index.

Utilicen esta clase:

<table class="table table-dark table-hover">

#LoveDarkMode

Soy yo o creo que va muy rápido :c que conocimientos previos debo de tener para poder llegar a este punto?

Que clase mas buena!!!

Vamos bien. Muy bien explicado

Excelente por toda esta configuración tan genial

A mi en lo personal me gusta más usar la función compact que pasar el arreglo, siento que es mucho más limpio jaja, pero que bien va quedando el blog:D!

Que increible Laravel, quiero aprender a unirlo con react =)

Agreguen estos estilos de datatables, para darle un aspecto mas profesional al proyecto
https://datatables.net/

En que casos se debe usar el form action?. es de bootstrap?.