Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:crud

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:frameworks:laravel:crud [2025/03/07 12:34] – [Listar posts] tempwininformatica:programacion:php:frameworks:laravel:crud [2025/03/11 12:06] (actual) – [Controlador] tempwin
Línea 32: Línea 32:
 </code> </code>
  
 +==== Abreviando rutas ====
 +
 +Si hemos seguido ciertas convenciones en el nombre de los archivos, Laravel nos permitirá crear todas las rutas que vimos antes de una manera muy rápida:
 +
 +<code php>
 +Route::resource('posts', PostController::class);
 +</code>
 +
 +Laravel supone que el controlador ''PostController.php'' tiene los siguientes métodos típicos de un CRUD:
 +
 +  * ''index''
 +  * ''create''
 +  * ''store''
 +  * ''show''
 +  * ''edit''
 +  * ''destroy''
 +
 +Y creará por nosotros las 7 rutas necesarias.
 +
 +Para comprobarlo, podemos ejecutar el siguiente comando que listará las rutas definidas en nuestro proyecto de Laravel:
 +
 +<code bash>
 +php artisan route:list
 +</code>
 +
 +La salida debe ser la misma que cuando definimos las rutas por separado.
 +
 +Si quisiéramos que no se creasen todas las rutas:
 +
 +<code php>
 +Route::resource('posts', PostController::class)
 +        ->except(['destroy', 'edit']);
 +</code>
 +
 +El código anterior creará todas las rutas menos las de ''destroy'' (eliminación de registros) y ''edit'' (modificar registros).
 +
 +También podemos hacer lo contrario, es decir, especificar las rutas que sí queremos que se creen:
 +
 +<code php>
 +Route::resource('posts', PostController::class)
 +        ->only(['index', 'create', 'store']);
 +</code>
 +
 +Así solo se crearán las rutas ''index'', ''create'' y ''store''.
 ===== Modelo ===== ===== Modelo =====
  
Línea 52: Línea 96:
 } }
 </code> </code>
 +
 ===== Controlador ===== ===== Controlador =====
  
Línea 57: Línea 102:
  
 <code php> <code php>
-php artisan make:controller PostController+php artisan make:controller PostController --create
 </code> </code>
 +
 +<WRAP center round info 60%>
 +El argumento ''%%--create%%'' hace que se generen los métodos típicos para un CRUD: ''index'' (listar), ''create'', ''store'' (guardar), ''edit'', ''update'' (modificar) y ''destroy'' (eliminar). 
 +</WRAP>
  
 Se habrá creado un fichero ''PostController.php'' dentro de ''app/Http/Controllers'' con el siguiente contenido:  Se habrá creado un fichero ''PostController.php'' dentro de ''app/Http/Controllers'' con el siguiente contenido: 
Línea 72: Línea 121:
 class PostController extends Controller  class PostController extends Controller 
 { {
 +    public function index() {}
 +
 +    public function create() {}        
 +
 +    public function store(Request $request) {}
 +    
 +    public function show(string $id) {}
 +    
 +    public function edit(string $id) {}        
 +    
 +    public function update(Request $request, string $id) {    }
 +    
 +    public function destroy(string $id) {    }            
  
 } }
 </code> </code>
-===== Listar posts =====+ 
 +===== Vistas ===== 
 + 
 +Vista para listar los posts
 + 
 +<code bash> 
 +php artisan make:view posts.index 
 +</code> 
 + 
 +Vista para mostrar un post: 
 + 
 +<code bash> 
 +php artisan make:view posts.show 
 +</code> 
 + 
 +Vista para crear un post: 
 + 
 +<code bash> 
 +php artisan make:view posts.create 
 +</code> 
 + 
 +Vista para mostrar editar un post: 
 + 
 +<code bash> 
 +php artisan make:view posts.edit 
 +</code> 
 + 
 +Las vistas se crearán en ''resources/views/posts''
 + 
 +===== Operaciones ===== 
 + 
 +==== Listar posts ====
  
 Controlador ''PostController.php'', centrándonos en el listado de posts: Controlador ''PostController.php'', centrándonos en el listado de posts:
Línea 115: Línea 208:
 </code> </code>
  
-===== Mostrar un post =====+==== Mostrar un post ====
  
 Controlador ''PostController.php'', centrándonos en mostrar un post en concreto: Controlador ''PostController.php'', centrándonos en mostrar un post en concreto:
Línea 161: Línea 254:
  
  
-===== Crear un post =====+==== Crear un post ====
  
 Controlador ''PostController.php'', centrándonos en la creación de un post: Controlador ''PostController.php'', centrándonos en la creación de un post:
Línea 242: Línea 335:
 </code> </code>
  
-===== Editar un post =====+==== Editar un post ====
  
 Crearemos dos nuevas rutas en ''routes/web.php'': Crearemos dos nuevas rutas en ''routes/web.php'':
Línea 332: Línea 425:
  
  
-===== Eliminar un post =====+==== Eliminar un post ====
  
 Creamos una nueva ruta en ''routes/web.php'': Creamos una nueva ruta en ''routes/web.php'':
informatica/programacion/php/frameworks/laravel/crud.1741347256.txt.gz · Última modificación: por tempwin