Я не могу протестировать все, так как у меня нет базы данных, в которую я мог бы записать ваш код (и у меня тоже нет тестовых данных :)), но ваш код имеет некоторые отличия от руководства.
Если вы посмотрите на эту страницу: http://www.phpactiverecord.org/projects/main/wiki/Associations#has_many_through
Вы видите три таблицы, на которых эта карта выглядит так (я думаю)
Order -> Category
Payment -> Eventcategory
User -> Event
A Category
имеет несколько *От 1010 * до Eventcategory
, так же как у Order
в этом примере несколько Users
до Payment
.Обратный путь определяется более базовым (a User
имеет Orders
)
Там, где вы определили 2 сквозных отношения, в этом примере есть только один в классе Order
, оставляя user
просто с has_many
.Это большая разница, я думаю, вам, возможно, придется обратиться.
Кроме того, я не совсем уверен относительно foreign_key
определений, которые вы делаете в этой части:
array('events', 'foreign_key' => 'event_id',
array('through' => 'eventcategories', 'foreign_key' => 'event_id')
Если вы 'у нас есть схема именования по умолчанию, которую вам не нужно явно называть.
Чтобы исправить это, я бы начал с примера заказ / пользователь / платеж, проверил, работает ли он для вас, а затем заменилвсе части (осторожно :)), чтобы он стал вашим кодом.