CREAR RUTAS CRUD EN LARAVEL
En el post crear rutas en Laravel se explica como crear rutas en Laravel de una en una. Pero hay una manera de crear todas las rutas CRUD con una sola línea:Route::resource('posts', PostController::class);
//PostController debe tener estos métodos:
class PostController extends Controller
{
public function index() {}
public function create() {}
public function store(Request $request) {}
public function show($id) {}
public function edit($id) {}
public function update(Request $request, $id) {}
public function destroy($id) {}
}
Ventajas
- Ahorra tiempo ya que no se define cada ruta manualmente.
- Sigue el estándar REST.
- Código más limpio y organizado.
Personalización
- Crear solo algunas rutas:
Route::resource('posts', PostController::class)->only(['index', 'show']); - Excluir rutas:
Route::resource('posts', PostController::class)->except(['create', 'edit']);
Tabla de rutas que crean automáticamente
| Método HTTP | URL | Acción del controlador | Nombre de la ruta | Propósito común |
|---|---|---|---|---|
| GET | /posts |
index() |
posts.index |
Mostrar lista de todos los posts |
| GET | /posts/create |
create() |
posts.create |
Mostrar formulario de creación |
| POST | /posts |
store() |
posts.store |
Guardar un nuevo post |
| GET | /posts/{post} |
show() |
posts.show |
Mostrar un post específico |
| GET | /posts/{post}/edit |
edit() |
posts.edit |
Mostrar formulario de edición |
| PUT / PATCH | /posts/{post} |
update() |
posts.update |
Actualizar un post existente |
| DELETE | /posts/{post} |
destroy() |
posts.destroy |
Eliminar un post |