1
私は3つのテーブルを持っています。codeigniter doctrine多対多関係
User
id
Group
id
UserGroup
user_id
article_id
date_joined
ここでは、関係を設定する3つのモデルがあります。
//ユーザーモデル
<?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'
));
}
}
//リストユーザーグループ
<?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コマンドが結果を1つ戻ってきていると私は、私は次のエラーを取得するコントローラ実行すると:
Fatal error: Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message 'Unknown record property/related component "User" on "Group"' in
のようなグループの配列にユーザーを割り当てる必要があります。あなたが私に送ったガイドは、私が誤りを受けているかどうかわからない理由です。私はチュートリアルで彼らが を使用していることに気付きました。 "class User extends BaseUser"多分これはそれと関係がありますか? –
私はリレーショナルテーブルに日付を追加しました(date_completed) –
BaseUserは、与えられた時刻にYAML設定が含んでいたすべての情報を反映するDoctrineによって生成されたクラスです。それは単なるコード分離の問題なので、これが問題の原因になるとは思いません。あなたはYAML設定とは異なるディレクトリにモデルを生成してみて、どのような違いがあるのか見てみてください。 – K4emic