Cake PHP – Cake Log – Cake Api – Manual Cake PHP – Cake Avanzado – Traduciendo Cake – Cake News
Su función es separar el dominio de la lógica de la presentación, aislando la lógica de la aplicación.
$datosParaGuardar = array('NombreDelModelo' => array('campo1' => 'valor', 'campo2' => 'valor'))
La orden «save()" que utilizaremos desde el controlador para guardar los datos en el modelo, y de paso en la base de datos si procede, quedaría así:
$this->Nombre Del Modelo->save($datosParaGuardar, $validar, $listaDeCampos);
En donde $validar puede tomar los valores 'true' o 'false' y $listaDeCampos debe contener la lista de campos que pretendemos salvar en forma de array.
$listaDeCampos = array('campo1','campo2')
Para conseguir que los datos pasados a tu controlador tengan este formato, lo más fácil es usar HTML Helper, ya que éste crea elementos de formulario con los nombres apropiados que necesita Cake.
$html->input('Modelo/nombrecampo');
Si no quieres hacer esto asegurate que los elementos de tu formulario tengan nombres como data[Nombre Modelo][nombrecampo].
Los datos enviados desde el formulario son automáticamente formateados de forma correcta y almacenados en la variable "$this->data" dentro de tu controlador, por tanto salvar los datos desde un formulario web es algo instantaneo.
class Analysis Ctt extends Analysis {
...
Otra forma de hacer esto sería: require_once dirname(FILE). DS . 'analysis.php';
La forma de uso es:
var $name = 'NombreDelModelo';
La forma de uso es
var $uses = array('Modelo1','Modelo2','Modelo3');
Por ejemplo:
$this->set('color','blue');
Ahora desde la vista podemos utilizar la variable $color que nos devolverá 'blue'.
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);
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
{
{
// Ahora la variable $usuarios en la vista tiene los datos
// de Usuarios Controller::obtenerListaUsuarios()
</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
{
{
// Ahora podemos hacer 'echo $tablaUsuario;' desde la vista de esta acción
// para ver la lista renderizada que esta disponible también desde /usuarios/obtenerListaUsuarios
</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.
Ejemplo de uso: $plural = Inflector::pluralize($singular);
Más información: http://api.cakephp.org/class_inflector.html
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.
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 es visible para toda la aplicación y se usa para:
$modelPaths = array('ruta completa modelos', 'segunda ruta completa modelos', 'etc...');
$viewPaths = array('ruta completa vistas', 'segunda ruta completa vistas', 'etc...');
$controllerPaths = array('ruta completa controladores', 'segunda ruta completa controladores', 'etc...');