У меня есть три таблицы.codeigniter doctrine many to many relationship
User
id
Group
id
UserGroup
user_id
article_id
date_joined
Теперь у меня есть три отдельных модели для установления отношений.
// Пользовательская модель
<?php
class User extends Doctrine_Record
{
// define table columns in this function
public function setTableDefinition() {
}
// setup some options
public function setUp() {
$this->hasMany('Group as Groupss', array(
'local' => 'user_id',
'foreign' => 'group_id',
'refClass' => 'UserGroup'
));
// causes 'created_at' and 'updated_at' fields to be updated automatically
$this->actAs('Timestampable');
}
}
// Группа Модель
<?php
class Group extends Doctrine_Record
{
// define table columns in this function
public function setTableDefinition() {
}
$this->hasMany('User as Users', array(
'local' => 'group_id',
'foreign' => 'user_id',
'refClass' => 'UserGroup'
));
}
}
// USERGROUPS
<?php
class UserGroup extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('user_id', 'integer', 4, array(
'primary' => true
)
);
$this->hasColumn('achievement_id', 'integer', 4, array(
'primary' => true
)
);
$this->hasColumn('date_completed', 'timestamp', 25);
}
}
и теперь все, что я хочу сделать, это построить отношения внутри моего контроллера :
$user = Doctrine::getTable('User')->findOneByEmail('[email protected]');
$group = Doctrine::getTable('Group')->findOneByID('1');
$user->Group = $user;
Оба SQL команды возвращаются к одному результату, и когда я бегу контроллер я получаю следующее сообщение об ошибке:
Fatal error: Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message 'Unknown record property/related component "User" on "Group"' in
плюрализация USERGROUPS был на самом деле опечатка на моем StackOverflow пост (и был обновлен). Руководство, которое вы отправили мне, было тем, за которым я следил, поэтому я не уверен, что получаю сообщение об ошибке. Я замечаю, что в учебнике они используют «class User extends BaseUser», возможно, это имеет к этому какое-то отношение? –
Также стоит отметить, что я добавил столбец в свою реляционную таблицу (date_completed) –
BaseUser - это класс, созданный Doctrine, который отражает всю информацию, содержащую конфигурацию YAML в данный момент времени. Это просто вопрос разделения кода, поэтому я не могу себе представить, что это будет источником проблемы. Не могли бы вы попытаться создать модели в другом каталоге из конфигурации YAML и посмотреть, какие различия существуют? – K4emic