Diferencia entre revisiones de «Usando las Vistas»

De KumbiaPHP Framework Wiki
Línea 8: Línea 8:
 
Las vistas en kumbiaphp son archivos con extensión .phtml , los cuales por convención llevan el mismo nombre que el nombre de la acción en el controlador, y dicha vista debe ir en una carpeta con igual nombre al de la clase controladora. con un ejemplo quedará mas claro:
 
Las vistas en kumbiaphp son archivos con extensión .phtml , los cuales por convención llevan el mismo nombre que el nombre de la acción en el controlador, y dicha vista debe ir en una carpeta con igual nombre al de la clase controladora. con un ejemplo quedará mas claro:
  
===== usuario_controller.php =====
+
===== Controlador usuario_controller.php =====
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 26: Línea 26:
 
El controlador llamado '''usuario_controller.php''' del cual nos interesa solo la parte antes del '''_controller.php''', es decir la palabra '''usuario''', el cual debe ser el nombre de la carpeta en views donde estarán alojadas cada una de las vistas (archivos .phtml) para esté controlador:
 
El controlador llamado '''usuario_controller.php''' del cual nos interesa solo la parte antes del '''_controller.php''', es decir la palabra '''usuario''', el cual debe ser el nombre de la carpeta en views donde estarán alojadas cada una de las vistas (archivos .phtml) para esté controlador:
  
 +
===== Vista hola.phtml =====
 
<source lang=php>
 
<source lang=php>
 
<h1>Soy la vista de la acción '''hola''' del controlador '''usuario_controller'''</h1>
 
<h1>Soy la vista de la acción '''hola''' del controlador '''usuario_controller'''</h1>
Línea 42: Línea 43:
 
Ahora para decirle a una acción que no vamos a usar ninguna vista solo debemos llamar al método '''View::select(NULL);''' con esto le estamos diciendo al framework que no intente mostrar ninguna vista luego de ejecutar la acción del controlador:
 
Ahora para decirle a una acción que no vamos a usar ninguna vista solo debemos llamar al método '''View::select(NULL);''' con esto le estamos diciendo al framework que no intente mostrar ninguna vista luego de ejecutar la acción del controlador:
  
 +
===== Controlador usuario_controller.php =====
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 64: Línea 66:
 
En el siguiente ejemplo crearemos un controlador con dos acciones '''crear''' y '''editar''' las cuales mostrarán un formulario que será el mismo para los dos casos:
 
En el siguiente ejemplo crearemos un controlador con dos acciones '''crear''' y '''editar''' las cuales mostrarán un formulario que será el mismo para los dos casos:
  
 +
===== Vista crear.phtml =====
 
<source lang=php>
 
<source lang=php>
 
<h1><?php echo $titulo; //titulo es una variable que enviamos desde el controlador. ?></h1>
 
<h1><?php echo $titulo; //titulo es una variable que enviamos desde el controlador. ?></h1>
Línea 80: Línea 83:
 
Creamos una vista llamada crear.phtml en '''views/usuario/crear.phtml''' la cual contiene un formulario con tres campos, como se puede observar el título para dicha vista es dinámico y viene dado por el valor que le asignemos en el controlador, se ha creado así para poder rehusar la vista en varias acciones.
 
Creamos una vista llamada crear.phtml en '''views/usuario/crear.phtml''' la cual contiene un formulario con tres campos, como se puede observar el título para dicha vista es dinámico y viene dado por el valor que le asignemos en el controlador, se ha creado así para poder rehusar la vista en varias acciones.
  
 +
===== Controlador usuario_controller.php =====
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php

Revisión del 00:16 16 jul 2012

Descripción

En este tutorial se demostrarán las posibilidades que ofrece KumbiaPHP para el uso de las vistas, como deben ser creadas, su formato, diferentes tipos de resultados en la vistas, entre otras funcionalidades.


Creando una Vista

Las vistas en kumbiaphp son archivos con extensión .phtml , los cuales por convención llevan el mismo nombre que el nombre de la acción en el controlador, y dicha vista debe ir en una carpeta con igual nombre al de la clase controladora. con un ejemplo quedará mas claro:

Controlador usuario_controller.php
<?php

//archivo usuario_controller.php

class UsuarioController extends AppController
{
    public function hola()
    {
        //código de la acción
    }
}

El controlador llamado usuario_controller.php del cual nos interesa solo la parte antes del _controller.php, es decir la palabra usuario, el cual debe ser el nombre de la carpeta en views donde estarán alojadas cada una de las vistas (archivos .phtml) para esté controlador:

Vista hola.phtml
<h1>Soy la vista de la acción '''hola''' del controlador '''usuario_controller'''</h1>

<?php View::content(); //muy importante siempre colocar esta linea en alguna parte de la vista. ?>

Nuestra vista hola.phtml se encuentra en la carpeta views/usuario/hola.phtml donde views es la carpeta donde deben ir todos los archivos que representen vistas, la carpeta usuario es la que contiene las vistas para el controlador usuario_controller.php y el archivo hola.phtml es la vista correspondiente al metodo/acción hola de dicho controlador.


Dejar de usar una vista

Aveces tenemos acciones que no necesitan mostrar nada al usuario, si no que solo se encargan de realizar un proceso y redireccionan la petición a otra parte de la aplicación, un ejemplo de ello puede ser el método eliminar de un [CRUD] donde solo se realiza el proceso de eliminar un registro de una base de datos y luego se redirecciona la petición al método listar del controlador.

Ahora para decirle a una acción que no vamos a usar ninguna vista solo debemos llamar al método View::select(NULL); con esto le estamos diciendo al framework que no intente mostrar ninguna vista luego de ejecutar la acción del controlador:

Controlador usuario_controller.php
<?php

//archivo usuario_controller.php

class UsuarioController extends AppController
{
    public function hola()
    {
        View::select(NULL); //esta linea puede ir en cualquier parte de la vista.
        //código de la acción
    }
}


Usando una vista con nombre distinto al de la acción

Aveces tenemos vistas que son casi ó exactamente iguales para varias acciones en un controlador. un ejemplo de ello puede ser la vista crear y editar de un CRUD en una aplicación. Para estos caso puede ser útil reutilizar la misma vista en las dos acciónes.

En el siguiente ejemplo crearemos un controlador con dos acciones crear y editar las cuales mostrarán un formulario que será el mismo para los dos casos:

Vista crear.phtml
<h1><?php echo $titulo; //titulo es una variable que enviamos desde el controlador. ?></h1>

<?php View::content(); //muy importante siempre colocar esta linea en alguna parte de la vista. ?>

<?php echo Form::open(); ?>
<label>Nombre: <?php echo Form::text("form.nombre"); ?></label>
<label>Correo: <?php echo Form::text("form.correo"); ?></label>
<label>Sexo: <?php echo Form::select("form.sexo",array("Masculino","Femenino")); ?></label>
<?php echo Form::submit("Enviar Formulario"); ?> <?php echo Form::reset("Limpiar Datos"); ?>
<?php echo Form::close(); ?>

Creamos una vista llamada crear.phtml en views/usuario/crear.phtml la cual contiene un formulario con tres campos, como se puede observar el título para dicha vista es dinámico y viene dado por el valor que le asignemos en el controlador, se ha creado así para poder rehusar la vista en varias acciones.

Controlador usuario_controller.php
<?php

//archivo usuario_controller.php

class UsuarioController extends AppController
{
    public function crear()
    {
        $this->titulo = 'Crear Usuario'; //enviamos una variable para el título de la página
        //código de la acción
    }

    public function editar($id)
    {
        View::select("crear");
        $this->titulo = 'Editar Usuario'; //enviamos una variable para el título de la página
        //código de la acción
    }
}

Ahora tenemos el código del controlador usuarios_controller.php, en el cual hay dos acciónes una llamada crear y otra editar, la ultima recibe un parámetro, el cual es el id del registro a editar. En la vista editar hemos hecho uso del método View::select("crear"); con lo cual le estamos diciendo al framework que la vista que la acción editar usará será crear.phtml y no editar.phtml, ademas estamos asignando un título diferente en la variable.



Realizado por: Manuel Aguirre (manuel_j555)