2011-01-16

Tips sobre CakePHP 1.3 para trabajar con mas libertad sobre nuestros desarrollos webs.

Tip 1:

Tener un Controller sin tener un Model, pudiendo tener (Controller + Vista) sin modelo.
class PersonasController extends AppController {
var $name = 'Personas';
var $uses = null; //<= Con esto no busca el modelo Persona
....
view raw gistfile1.php hosted with ❤ by GitHub



Tip 2:

Desde un Controller cargar otra vista y cambiar de Layout para que no busque el predeterminada por el controller.

class PersonasController extends AppController {
var $name = 'Personas';
function index() {
$this->layout='layout4'; //views/layouts/layout4.ctp
$this->autoRender = false; //Desactivar para no generar error
$this->render('home'); //view/personas/home.ctp
}
....
view raw gistfile1.php hosted with ❤ by GitHub


Tip3:

Como entrar por una Action y entragar la salida de otro Action desde el controller. Es como un redirect pero internamente en el propio controller, lo bueno de esto es que no cambia la url. Ejemplo si http://dominio.com.ar/controller1/action1/99, va seguir siendo esa misma url para el navegador; pero internamente desde el controllador utilizamos la action2 y la vista action2.ctp
# http://dominio.com.ar/mycontroller1/action1/99
class Mycontroller1Controller extends AppController {
function action1($paran1 = NULL) {
if(is_numeric($paran1) && $paran1 >0){
$this->setAction('action2', NULL, NULL, NULL, $paran1);
}else{
$this->Session->setFlash(__('No existe', true));
$this->redirect('/');
}
}
function action2($paran1 = NULL, $paran2 = NULL, $paran3 = NULL, $paran4 = NULL) {
// ....
}
//...
}


Tip4:

Hacer que CakePHP 1.3 quede configurado desde el app/config/boostrap.php para que no diferencia singural y plurar ya que las reglas para el español del plural y singular no están dentro de cake.

Nota: recomiando poner los nombres de las tablas en plurar eje: paises, provincias, fotos, etc.. y todo va ser siempre plural para los controller y los modelos.
# CODE IN CakePHP 1.3.+ app/config/bootstrap.php
// Reglas para trabajar con CakePHP en español, esto matiene el genero de como esta en la base de datos para las vista y controller
Inflector::rules('singular', array('rules' => array('/^aros$/i' => 'aro', '/^acos$/i' => 'aco', '/^users$/i' => 'user', '/^groups$/i' => 'group', '/^(.*)$/i' => '\1',), 'irregular' => array(), 'uninflected' => array()));
Inflector::rules('plural', array('rules' => array('/^aro$/i' => 'aros', '/^aco$/i' => 'acos', '/^user$/i' => 'users','/^group$/i' => 'groups', '/^(.*)$/i' => '\1',), 'irregular' => array(), 'uninflected' => array()));
// NOTA se recomienda poner el nombre de las tablas en plurar eje: paises, provincias, fotos, etc..
view raw gistfile1.php hosted with ❤ by GitHub

No hay comentarios: