Controladores

Los controladores son clases que manejan las solicitudes HTTP y contienen la lógica de tu aplicación. En un patrón de diseño MVC (Modelo-Vista-Controlador), los controladores actúan como intermediarios entre las vistas y los modelos, procesando la entrada del usuario y devolviendo una respuesta apropiada.

Ejemplo básico de controlador

Para generar un controlador básico utiliza el comando create:controller en la consola de comandos. El controlador se creara en el directorio app/Http/Controllers.

                
                
$ php console create:controller BasicController

El siguiente ejemplo muestra un controlador básico generado por el comando.

                
                
namespace App\Http\Controllers;
 
class BasicController
{
  //
}

Controlador de recursos

Para generar un controlador de recursos utiliza el comando create:controller --r en la consola de comandos.

                
                
$ php console create:controller BasicController --r

El siguiente ejemplo muestra un controlador de recursos generado por el comando.

                
                
namespace App\Http\Controllers;
 
use Lib\Http\Request;
 
class BasicController
{
  public function index()
  {
    //
  }
 
  public function create()
  {
    //
  }
 
  public function store(Request $request, string $id)
  {
    //
  }
 
  public function show(Request $request, string $id)
  {
    //
  }
 
  public function edit(Request $request, string $id)
  {
    //
  }
 
  public function update(Request $request, string $id)
  {
    //
  }
 
  public function destroy(Request $request, string $id)
  {
    //
  }
}

Como podemos ver, el controlador de recursos se crea en el directorio app/Http/Controllers y trae definidas una serie de funciones que explicaremos a continuación:

  • index(): Muestra todos los recursos.
  • create(): Muestra el formulario para crear un nuevo recurso.
  • store(): Almacena un nuevo recurso.
  • show(): Muestra un recurso.
  • edit(): Muestra el formulario para editar un recurso.
  • update(): Actualiza un recurso.
  • destroy(): Elimina un recurso.