que tienen las siguientes tablas:¿Cuál es la forma más correcta de evitar este error de propulsión "No se puede redeclarar la función"?
user
, logbook
, user_logbook
libro de registro de usuario es una tabla de unión (isCrossRef="true"
en el schema.xml), que contienen user_id
y logbook_id
claves externas.
También quería recordar el libro de registro actualmente seleccionado para cualquier usuario dado, así que puse un current_logbook_id
también en mi tabla user
, y le di una clave externa. Sin embargo, en mi archivo BaseUserQuery.php
obtengo dos funciones filterByLogbook()
.
sé que cuando se tienen dos claves ajenas a la misma mesa, de la misma tabla, se obtiene funciones como getUserRelatedBySomething()
y getUserRelatedBySomethingElse()
, pero lo que es lo mejor que puede hacer en esta situación?
Por supuesto, puedo eliminar la clave externa y usar la ID guardada, o supongo que podría crear una nueva tabla de unión (aunque eso no parece correcto). ¿Qué es lo mejor que se puede hacer en esta situación, en términos de "haciendo lo correcto" en MySQL y Propel (espero que pueda hacer ambas cosas).
A menos que haya una manera que yo no conozca, sospecho que lo correcto es inclinar Propel y agregar una manera limpia de manejar esta situación. ¡Piensa en el buen karma! –
Entonces, ¿estás bastante seguro de que no hay forma posible? – LeonardChallis
En realidad, creo que hay - ver mi respuesta –