Esta variable es la responsable de que las acciones de un controlador llamen o renderizen una vista después de terminar su ejecución. Por defecto es 'true', podríamos establecerla como 'false' para crear controladores ($var autoRender=false;) o acciones ($this->autoRender = false;) que no llamen a ninguna vista.
Normalmente un controlador toma por defecto el modelo que corresponde a su nombre en singular. Si el controlador utiliza un modelo con nombre distinto o el nombre tiene un plural irregular utilizamos esta propiedad para establecerlo. Este recurso también resuelve problemas de nombres de modelos con Palabras Camello? en sistemas con PHP4.
La forma de uso es:
var $name = 'NombreDelModelo';
Si el controlador necesita más de un modelo utilizamos esta variable para indicarlo. Hay que incluir también el modelo que responde al nombre del controlador.
La forma de uso es
var $uses = array('Modelo1','Modelo2','Modelo3');
Aunque en esta sección se describen las funciones más utilizadas en los Controladores de Cake, es conveniente consultar la api en http://api.cakephp.org// para una referencia completa
Sirve para pasar datos desde un controlador hacia una vista, en forma de variables, arrays, etc.
Por ejemplo:
$this->set('color','blue');
Ahora desde la vista podemos utilizar la variable $color que nos devolverá 'blue'.
Puede que no use esta función muy a menudo, puesto que la llamada a 'render' se produce automáticamente al final de la ejecución de cada acción de un controlador, renderizando la vista asociada al nombre de la acción. No obstante, puedes llamar a esta función para que renderize la vista en cualquier punto de la ejecución del controlador ( $this->render(); ).
Esta función muestra un $mensaje al usuario usando el layout flash (está en 'app/views/layouts/flash.thtml') durante el tiempo especificado en $pausa y luego envía al usuario a la página especificada en $url.
En el layout por defecto el usuario también puede pasar a la $url de destino pulsando en el hipervínculo asociado al propio mensaje.
Ejemplo:
$this->flash('La página se ha grabado correctamente', 'paginas/list', 10);
Aunque estas funciones son parte de la clase 'Object' de Cake están también disponibles desde el Controlador.
Esta función llama a una acción de otro controlador, retornando datos o una vista renderizada. La $url es una URL tipo Cake (/nombrecontrolador/accion/parametros). Si el array $extra incluye una clave 'return', Auto Render? es establecido automáticamente a 'true' para la acción, o sea la vista será renderizada.
Conseguir datos desde un controlador es simple. Sólo tienes que usar requestAction en el controlador donde necesitas los datos.
<code>
// Este es nuestro sencillo controlador
class Usuarios Controller? extends App Controller?
{
}
</code>
Imagina que necesitamos crear una tabla mostrando los usuarios del sistema. En vez de duplicar código en otro controllador, podemos obtener los datos desde Usuarios Controller?::obtenerListaUsuarios() usando un requestAction().
<code>
class Productos Controller? extends App Controller?
{
}
</code>
Si tienes un elemento no estático en tu aplicación que usas mu a menudo, podrías querer usar requestAction() para inyectarlo en tus vistas. Digamos que mejor que pasar sólo los datos desde Usuarios Controller?::obtenerListaUsuarios(), queremos realmente renderizar la vista de esa acción (que podría consistir en una tabla), dentro de otro controlador. Esto nos ahorra duplicar código de la vista.
<code>
class Programas Controller? extends App Controller?
{
}
</code>
Observa que las acciones llamadas desde requestAction() son renderizadas usando un diseño o layout vacío. De esta manera no tienes que preocuparte de diseños renderizándose dentro de otros diseños.
La función requestAction() es también de gran utilidad cuando usamos AJAX, donde un pequeño elemento de una vista necesita ser rellenado antes o durante un actualización AJAX.
Se encarga de realizar conversiones entre nombre de modelos, vistas, controladores y ficheros. Transformando de plural a singular, de camel case a subrayado bajo, etc. Algunas de sus funciones son: pluralize, singularize, camelize, humanize o classify.
Más información: http://api.cakephp.org/class_inflector.html
HTMLHelper está incluido por defecto en cualquier controlador, pero si quermos usar otros helper tendremos que incluir también a 'Html' en el array que los carga.
var $helpers = array('Html','Ajax','Javascript');
Como todas las clases 'Helper' sus funciones se utilizan desde dentro de una vista, no desde el controlador, aunque se las referencie desde éste.
Busca la URL para una accioón especificada.
Devuelve una URL apuntando a una combinación de controlador y acción. Si $url está vacío devuelve la dirección del controlador y la acción actual.
La variable $return determina si la función debe devolver un valor o mostrarlo. Esto pasa por encima el valor de AUTO_OUTPUT.
Ejemplos:
$html->url('/productos/edit/92');
$html->url('/'); // Devuelve la url raiz de la aplicación.
Nota: no se debe confundir esta función con Html::link() que devuelve una etiqueta html completa para mostrar un hiperenlace.
Es el encargado de lidiar con las variables de sesión.
startup (&$controller)
write ($name, $value)
read ($name=null)
del ($name)
delete ($name)
check ($name)
error ()
setFlash ($flashMessage, $layout= 'default', $params=array(), $key= 'flash')
flash ($key= 'flash')
renew ()
valid ()
Este fichero se carga automaticamente desde app/webroot/index.php después del bootstrap.php común a todos los proyectos de cake.
Este fichero es visible para toda la aplicación y se usa para: