Что не так с моим PHP ActiveRecord имеет много сквозных отношений? - PullRequest
1 голос
/ 29 августа 2011

Когда я запускаю следующий код:

$venue_test = VenuePage::find(104);
$cats = $venue_test->categories;

Я получаю следующую ошибку:

Произошла непредвиденная ошибка. Не удалось найти ассоциацию venue_to_cat_pages в модели VenuePage

Полный код:

class VenuePage extends ActiveRecord\Model {
  static $table_name = 'Pages';
  static $primary_key = 'cid';
  static $has_many = array(
              array('venue_to_cat_pages', 'class_name' => 'VenueToCategory', 'foreign_key' => 'venuecid', 'primary_key' => 'cid'),
              array('categories', 'through' => 'venue_to_cat_pages')
  );
}



class Category extends ActiveRecord\Model {
  static $table_name = 'EnilonVenueCategories';
  static $has_many = array(
  array('venue_to_cat_categories', 'class_name' => 'VenueToCategory', 'foreign_key' => 'categoryid', 'primary_key' => 'id'),
  );
}


class VenueToCategory extends ActiveRecord\Model {
  static $table_name = 'EnilonVenuesToCategories';
  static $primary_key = 'ID';

  static $belongs_to = array(
    array('venue_to_cat_pages', 'class_name' => 'VenuePage',  'foreign_key' => 'venuecid', 'primary_key' => 'cid'),
    array('venue_to_cat_categories',  'class_name' => 'Category', 'foreign_key' => 'categoryid', 'primary_key' => 'id')
  );
}   

1 Ответ

3 голосов
/ 02 февраля 2012

Ваши имена таблиц / столбцов довольно запутанные, поэтому у меня может быть неправильный синтаксис, но вам нужна ссылка has_many в категории обратно на VenuePage:

class Category extends ActiveRecord\Model {
  static $table_name = 'EnilonVenueCategories';
  static $has_many = array(
      array('venue_pages', 'class_name' => 'VenuePages'),   // <---- Add this
      array('venue_to_cat_categories', 'class_name' => 'VenueToCategory', 'foreign_key' => 'categoryid', 'primary_key' => 'id'),
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...