Mejor forma de crear un controlador Laravel para operaciones CRUD
Laravel trabaja en el patrón arquitectónico MVC (Model-View-Controller). Si está ejecutando una aplicación en el marco de Laravel, entonces debe crear modelos, vistas y controladores para su aplicación.
En Laravel, uno puede crear un controlador y un modelo a través de la interfaz de línea de comandos. Laravel artisan es la interfaz de línea de comandos que proporciona una serie de comandos que nos ayudan a construir la aplicación. Podemos y debemos crear un controlador usando el comando artisan.
Crea un controlador Laravel
Digamos que está trabajando en el back-end y desea realizar operaciones CRUD en las páginas. Eso significa que necesita construir un sistema para administrar páginas que incluye crear, recuperar, actualizar y eliminar páginas. Por supuesto, para esta tarea, necesita crear un controlador.
Normalmente, la gente ejecuta el comando php artisan make:controller PageController
. Este comando genera un archivo PageController.php
en el directorio app / Http / Controllers.
Nota: Debe ejecutar este comando en el directorio raíz de un proyecto utilizando la interfaz de línea de comandos.
PageController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
//
}
En este controlador generado, debe escribir métodos y definir las rutas en consecuencia. Para cada método, debe escribir una ruta separada.
Por ejemplo. agreguemos un método index()
y definamos una ruta para él.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
public function index() {
//do operations here
}
}
Para llamar a esta index()
función en el archivo de ruta, debemos agregar el siguiente código.
rutas / web.php
Route::get('pages', 'PageController@index');
Se aplicará el mismo proceso para cada método adicional.
No hay nada de malo en este flujo. Pero esta no es la forma recomendada. Detrás de la popularidad de Laravel, hay varias razones. Una de las razones son sus poderosos comandos artesanos avanzados.
Mejor forma de crear un controlador Laravel
En Laravel, no necesitamos escribir cada método y definir una ruta separada para cada método. Usando el comando artisan podemos generar un controlador con métodos predefinidos. Y con solo escribir una sola ruta, Laravel llama automáticamente a los métodos apropiados.
Dicho esto, abra su interfaz de línea de comandos en el directorio raíz de su proyecto y ejecute el siguiente comando. Tome nota, esta vez estamos agregando –resource a nuestro comando make: controller.
php artisan make:controller PageController --resource
Ahora el generado se PageController.php
ve como se muestra a continuación.
PageController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param int $id
* @return IlluminateHttpResponse
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function destroy($id)
{
//
}
}
Tenemos los métodos como indexar, crear, almacenar, mostrar, editar, actualizar, destruir automáticamente. Puede leer los comentarios proporcionados para cada método que explica lo que hace cada método. Ahora especifiquemos la ruta para ello.
rutas / web.php
Route::resource('pages', 'PageController');
Esta ruta ingeniosa creará múltiples rutas para manejar diferentes acciones. Ahora, para obtener los detalles sobre las acciones, ejecute el comando php artisan route:list
. Para la ruta de las páginas, verá la salida como se muestra en la captura de pantalla.
Esta salida le da una idea del método HTTP, la URL y qué método llamará a la URL especificada.
Por ejemplo, si está ejecutando una URL YOUR_SITE_DOMAIN / pages con el método GET, entonces dará una llamada al index()
método de un PageController.
Si desea crear una nueva página, la URL será YOUR_SITE_DOMAIN / pages / create. Da una llamada al create()
método donde necesita cargar una vista para crear una nueva página.
Cuando envías un formulario con método = "publicación" y acción = "páginas", se realiza una llamada al store()
método.
Y así.
Se trata de crear un controlador Laravel para operaciones CRUD. Comparta sus pensamientos en la sección de comentarios a continuación.
Artículos relacionados
- Cómo hacer la siembra de bases de datos en Laravel
- Sistema de inicio de sesión social usando Laravel Socialite