Su archivo Modelname.class.php contiene la clase contenedora, por ejemplo, Publicar. Esta clase tiene todos los métodos y propiedades de una fila en su tabla, por ejemplo, la tabla Publicar. Si tiene columnas en la tabla como id, text, etc., podrá acceder a ellas a través de la clase Post.
Sin embargo, su PostTable (o clase XxxxxTable) es el tabla de referencia, lo que significa que esta clase debe ser responsable de la consulta de la tabla para recuperar los datos.
Permítanme dar un breve ejemplo. Digamos que desea sacar una sola publicación de la tabla y luego editarla.
Primero, haría como $post = Doctrine::getTable('Post')->findOneById(1);
Esto se hace desde la clase de tabla porque querrá extraer algunos datos de una tabla específica.
Ahora tiene su publicación (como en un objeto Post), porque ->findOneById(...)
ha consultado la base de datos por usted. Luego puede editar eso, por ejemplo con $post->title = "a nice title"
. Finalmente, guarde su publicación con $post->save();
.
Excepciones a esto es cuando desea recuperar objetos relacionados, que por ejemplo podrían ser respuestas a su publicación. Esto se haría a través del objeto que ya retiró al $post
.
Espero haber aclarado mi punto, si no, no dude en hacer más preguntas.
Esto muy similar a: http: //stackoverflow.com/questions/11714387/choosing-between-symfonys-doctrine-orm-files-model-class-php-and-modeltable-cla/11729994#11729994 – Omn