データベースから3つのテーブルを接続するモデルの作成方法は?私のDB構造は次のとおりです。複数のテーブルのデータを1つのモデルに入れる方法は?
- ユーザー
- ID
- 他の分野
-
- ID
- users_id users_info - 他の 'ユーザー' テーブルへの外部キー
- フィールド
- users_credentials
- ID
- users_id - 'ユーザー' テーブルへの外部キー
- 他の分野
元、私は、一つのモデルに結合した2つのテーブルを持っていると思いました私はaddRelatedEntityメソッドを使用しました。ここに私のコードです:
class Model_UserInfo extends Model_Table{
public $entity_code = 'user_info';
function init(){
parent::init();
$this->addField('phone')->caption('Nr tel');
$this->addField('users_id');
}
function addRelation(){
$this->addRelatedEntity('i','users','users_id','left outer');
}
}
、その後、私は他のファイルにそれを拡張 -
class Model_User extends Model_UserInfo{
function init(){
parent::init();
parent::addRelation();
$this->newField('name')->caption('Imie')->mandatory(true)->relEntity('i','name');
}
}
そして、それはとてもうまくいきました。しかし、3つのテーブルを1つのモデルに結合したいのですが?私は2つのクラスを拡張することはできません。 Model_UserでaddRelatedEntityを使用し、Model_UserInfoとModel_Credentialsを参照する方法はありますか?
parent :: addRelation();を呼び出します。オブジェクト指向プログラミングの点では良い方法ではありません。 $ this-> addRelation();関数が現在のクラスで定義されていない場合、親から継承されているので、まったく同じように動作します。ただそれを指摘したかったのです。 – romaninsh