Obtener valores desde el controller
Sumario
Obtener valores desde el controller
Las URLs de Kumbia están caracterizadas por tener varias partes cada una de ellas con una función conocida.
Para obtener desde un controlador los valores que vienen en la URL podemos usar algunas propiedades útiles en el controlador:
Ejemplo1:
http://www.kumbiaphp.com/aplicacion/productos/buscar/12
El sitio es: kumbiaphp.com
La aplicación es: aplicacion
El controlador es: productos
La acción es: buscar
El valor para id es: 12
Nuestro controlador aplicación/productos_controller.php luce así:
<?php
class ProductosController extends ApplicactionController {
public function buscar($id){
/* */
}
}
?>
Dentro del método buscar podemos obtener el valor de id osea 12 en nuestro ejemplo colocando un parámetro al controlador $id podemos recoger este valor y utilizarlo internamente.
Otras formas de hacer esto es utilizar los métodos post, get o request así:
public function buscar(){
$id = $this->request(“id”);
// o también
$id = $this->id;
}
¿Cómo saber el nombre del controlador actual?
public function buscar(){
$controlador = $this->controller_name;
}
¿Cómo saber el nombre de la acción actual?
public function buscar(){
$accion = $this->action_name;
}
Ahora veamos el siguiente ejemplo:
http://www.kumbiaphp.com/aplicacion/registro/buscar_fecha/2006/12/01
El sitio es: kumbiaphp.com
La aplicación es: aplicacion
El controlador es: registro
La acción es: buscar_fecha
La mejor forma de recoger estos valores es de la siguiente forma:
<?php
class RegistroController extends ApplicactionController {
public function buscar_fecha($año, $mes, $dia){
/* */
}
}
?>
Como vemos los valores adicionales en la URL son automáticamente agregados como parámetros en la acción del controlador.
¿Que pasa con id en este ejemplo?
$id es el valor del primer parámetro siempre así que si nos referimos a éste, encontramos que tiene el valor 2006.
¿Cómo puedo obtener los parámetros extra si no sé cuántos son?
Aquí usamos la propiedad del controlador $parameters que contiene estos valores así que el ejemplo podríamos reescribirlo así:
<?php
class RegistroController extends ApplicactionController {
public function buscar_fecha(){
$año = $this->parameters[0];
$mes = $this->parameters[1];
$dia = $this->parameters[2];
/* ... */
}
}
Por último podemos ver todos los parámetros que vienen en una url de Kumbia usando la propiedad del controlador $this->all_parameters. Una salida de esta variable en el ejemplo anterior con print_r muestra:
Array
(
[0] => registro
[1] => buscar_fecha
[2] => 2006
[3] => 12
[4] => 01
)