1

CActiveRecord モデルの子クラスのモデルを取得する方法を理解しようとしています。

次の2つの基本クラスがあります。

  • クラスUser拡張CActiveRecord
  • クラスTutor拡張User

それらの間の接続は、 in table であるidテーブルです。私の現在のアプリでは、クラスをインスタンス化していますが、.usersfktutorsUserTutor

関係は次のように gii によって設定されました。

For User class:
public function relations()
    {
        return array(
            'tutor' => array(self::HAS_MANY, 'Tutors', 'user_id'),
        );
    }


For Tutor class:
public function relations()
{
    return array(
        'user' => array(self::BELONGS_TO, 'Users', 'user_id'),
    );
}

両方のモデルからのデータが取り込まれたオブジェクトを取得できるようにするにはどうすればよいですか?

注:私のデータベース テーブルの名前はpluralで、モデルの名前はsingularです。

4

2 に答える 2

1

アクティブなレコード モデルにクエリを実行すると、関連するオブジェクトが自動的に取り込まれます (関係を適切に設定している場合)。次のようなものから始めましょう。

$users=User::model()->findAll();

データで何をしているかに応じて、関連するテーブルを遅延フェッチするか、熱心にフェッチするかを決定する必要があります。以下は熱心にレコードをフェッチします。

$users=User::model()->with('tutor')->findAll();

このテーマに関する Yii のドキュメントは非常に優れており、読む価値があります

于 2013-07-11T00:15:58.170 に答える