2011-03-27 13 views
7

Estoy probando CakePHP ahora y no puedo hacer que mi aplicación funcione porque CakePHP "piensa" que mi nombre de modelo es 'Tach' cuando en realidad es 'Tache'.CakePHP tiene un nombre de modelo incorrecto

¿Por qué?

Mi controlador se define como: app/controllers/taches_controller.php

class TachesController extends AppController { 

function index() { 

    $allTaches = $this->Tache->find('all'); 

    $this->set('taches', $allTaches); 

} 

}

Y aquí es mi modelo: app/modelos/tache.php

class Tache extends AppModel { 

var $useTable = 'taches'; 

}

Aparece un error si Yo uso 'Tache' en mi controlador:

 $allTaches = $this->Tache->find('all'); 

Pero si uso 'Tach', No me sale el error:

 $allTaches = $this->Tach->find('all'); 

Por qué no puedo usar el nombre del modelo 'Tache'? Estoy haciendo algo mal ? Por cierto estoy en php 5.3 y mi versión de CakePHP es 1.3.8

¡Gracias!

Alex

+0

¿Qué versión de CakePHP está usando? –

+0

Oh lo siento, lo olvidé. Es 1.3.8. – Alex

+0

Parece que tus Taches fueron víctimas de algún tipo de depluralización automática. Aunque no sé CakePHP ... –

Respuesta

11

reglas de inflexión por defecto de CakePHP piensan que Taches es la forma plural de Tach.

Deberá usar la clase Inflector para agregar una inflexión personalizada.

ver lo siguiente:

Para recapitular tendrá que añadir algo como lo siguiente a su archivo/config/Bootstrap.php aplicación:

Inflector::rules('plural', array('irregular' => array('tache' => 'taches'))); 
+0

Wow, muchas gracias Robert! – Alex

Cuestiones relacionadas