Manual de cakePHP 1.2 (No definitivo)

Nov 17

Leyendo un poco este nuevo y mucho más completo manual de cakePHP 1.2 descubrí algunas cosas interesantes que quiero compartir con ustedes, quizas las sepan quizas no, pero nunca está demás.

El manual (no es el definitivo) se encuentra en http://tempdocs.cakephp.org/

Dentro de lo que estaba leyendo encontré:

1. Pasaje de múltiples parámetros del controlador a la vista en un solo arreglo:


$data = array(
'color'=> 'pink',
'type' => 'sugar',
'base_price' => 23.95
);

$this->set($data);

Esto nos permite desde la vista acceder las variables @color, @type, @base_price.

2. Uso de postConditions para realizar busquedas fácilmente:

Suponiendo que tenemos una vista y dentro de ella con ayuda del formHelper una forma para colocar datos de órdenes de compra estilo mercado libre, enviamos esta forma al controlador y dentro del mismo podemos hacer lo siguiente:


function index()
{
$o = $this->Orders->findAll($this->postConditions($this->data));
$this->set(‘orders’, $o);
}

Lo que ocurre internamente es que postConditions cambia la información del arreglo $this->data a un formato comprensible por findAll, por ejemplo:

 $this->data[‘Order’][‘destination’]

igual a “Old Towne Bakery”
se convertiría en

 array(“Order.destination” => “Old Towne Bakery”)

Si lo que se quiere es darle parámetros más específicos de comparación entre términos y no simplemente que x = y, entonces usamos lo siguiente:

Suponiendo que tenemos estos datos en $this->data


array(
‘Order’ => array(
‘num_items’ => ‘4’,
‘referrer’ => ‘Ye Olde’
)
)

y realizamos la llamada al método de esta forma


$this->Order->findAll(

$this->postConditions($this->data, array(‘>=’, ‘LIKE’)

)

Esto quiere decir, busca todas las ordenes de compra cuyo número de items sea mayor igual a 4 y que en el campo referencia del artículo contenga “Ye Olde”.

Espero les sirva de algo :) , aunque el manual no esta completo si sigue por el camino que va programar en cake será mucho más sencillo.