2010-04-05 2 views
0

Я создаю модели из моего Mysql db. Он генерирует коллекцию внешнего ключа должным образом, но не наоборот ... Предполагается, что это «по дизайну», или я делаю что-то неправильно?PHP Doctrine: проблема генерации?

псевдокод оповещения

User: 
    UserId pk 
    LocationId fk  //User location 

Location 
    LocationId pk 
    UserId fk   //Location owner 

Сгенерированный код:

class User() { 
    hasMany('Location') //for locations owned by the user 

    //BUT NOT THIS ONE: 
    //hasOne('Location_1') //for current location of user 
} 

class Location() { 
    hasMany('User') //for users which are on that location 

    //AND NOT THIS ONE 
    //hasOne('User_1') //for location owner 
} 

ответ

1

Вы должны определить таблицу ассоциации. Ваш псевдокод вводит в заблуждение - в отношение многих ко многим, никакие внешние ключи не используются в классах пользователя или местоположения, а в классе ассоциации.

См PDF manual страница 76.

+0

Нет, код правильный. Для этого не нужен класс ассоциации, ему нужно одно-много отношений два раза. – Ropstah

+0

User-> locationid обновляется всякий раз, когда изменяется местоположение пользователя. Когда местоположение вставлено, пользователю назначается его владелец. – Ropstah

+0

Извините, я неверно истолковал ваш вопрос. Просто догадаться, но, может быть, вы должны явно определить _owningSide_? http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models#relationships – jholster

Смежные вопросы