在Yii Framework中检索记录的子模型

时间:2013-07-10 23:38:46

标签: php oop model yii

我试图了解如何获取CActiveRecord模型的子类的模型。

我有以下两个基本类:

  • 课程User延长CActiveRecord
  • 课程Tutor延长User

它们之间的关联是表id users fk,表tutors中的User。在我当前的应用中,我正在实施Tutor课程,但我还需要来自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'), ); } 的数据。

关系由gii设定如下:

{{1}}

我怎样才能使用填充了两个模型数据的对象?

注意:我的数据库表以复数命名,而模型位于单数

2 个答案:

答案 0 :(得分:1)

当您查询活动记录模型时,它应自动引入相关对象(前提是您已正确设置其关系)。像下面这样的东西给你一个开始。

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

根据您对数据的处理方式,您需要决定是否要懒惰地获取相关表格或急切地获取它们。以下内容将急切地获取记录。

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

有关此主题的Yii文档非常好,非常值得一读: http://www.yiiframework.com/doc/guide/1.1/en/database.arr#performing-relational-query

答案 1 :(得分:1)

显然,只需使用以下命令即可在Yii中访问对象的兄弟姐妹:

$model->tutors

tutors表示与兄弟对应的表格。如果与子项的关系为HAS_MANY,则该命令将返回一个或多个数组,每个数组都包含一个兄弟实例。如果它是1:1(HAS_ONE)关系,则该命令将直接返回该对象。

相关问题