Obtener Parámetros de la URL, Formularios o Cookies
Todos los controladores de FacturaScripts cuentan con el método request(), que permite acceder a los parámetros de la URL ($_GET), formularios ($_POST) o cookies ($_COOKIE).
En el entorno de Controller, la Request engloba toda la información de la petición HTTP. Cada componente principal de la petición se divide internamente en objetos del tipo SubRequest. Algunas de las principales propiedades del objeto request (que son instancias de SubRequest) son:
- query (equivalente a $_GET).
- request (equivalente a $_POST).
- server (equivalente a $_SERVER).
- files (equivalente a $_FILES).
- cookies (equivalente a $_COOKIE).
⚡ Obtener un Parámetro de la URL (GET)
Supongamos que la URL es http://example.com/MyNewController?idproject=1 y queremos obtener el valor de idproject. Podemos usar el método de la SubRequest query así:
// Obtiene el valor como string o null si no existe
$value = $this->request()->query->get('idproject');
// Opciones tipadas desde query (SubRequest):
$id = $this->request()->query->getInt('idproject');
$is_active = $this->request()->query->getBool('active', false);
También disponemos de un atajo general (menos estricto):
$value = $this->request()->query('idproject');
⌨️ Obtener el Valor de un Input de un Formulario (POST)
Imaginemos que tenemos un formulario con un input llamado description y queremos obtener el valor enviado ($_POST). Podemos acceder a la propiedad request de la Request principal (que es una SubRequest):
// Obtiene el valor como string o null si no existe
$value = $this->request()->request->get('description');
También existe un atajo general:
$value = $this->request()->input('description');
Nota: Existen métodos más específicos en las instancias de
SubRequest(tanto en$this->request()->requestpara POST como en$this->request()->querypara GET) para obtener el valor casteado o sanitizado directamente. Ejemplos usando POST:$id = $this->request()->request->getInt('id'); $price = $this->request()->request->getFloat('price', 0.0); $active = $this->request()->request->getBool('active', false); $fecha = $this->request()->request->getDate('fecha', date('Y-m-d')); $emails = $this->request()->request->getArray('emails');Todos aceptan un segundo parámetro opcional como valor por defecto en caso de que el input o parámetro no exista.
🍪 Obtener el Valor Almacenado en una Cookie
Supongamos que hemos guardado una cookie con el nombre order1 y queremos leer el valor que almacena. Para ello llamamos al método cookie():
$value = $this->request()->cookie('order1');
🧭 Obtener la IP del Usuario
Para obtener la dirección IP del usuario, se puede usar el siguiente método:
$ip = $this->request()->ip();
🔜 Redireccionar al Usuario
Se puede redirigir a otra página o controlador usando el método redirect() del controlador:
$this->redirect('ListProducto');
En este caso, estamos redireccionando al controlador ListProducto, que muestra el listado de productos.