0

在公司模型中,我加入模型用户和业务单元。

$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('status',$this->status);

$criteria->condition = "`t`.status = '1'";
$criteria->order = 'created DESC';
$criteria->join = " inner join  users on users.company_id = `t`.id";

$criteria->condition = "`t`.status = '1'";
$criteria->order = 'created DESC';
$criteria->join = " inner join  business_unit on business_unit.company_id = `t`.id";

有用。但我只获得公司属性。我如何获得属性business_unit以及属性userscompany

4

1 回答 1

1

您应该在“公司”模型中为用户和业务单元创建关系,例如:

1)第一件事是检查您是否在公司模型中有两个关系,用户和业务单位:

public function relations()
{
    return array(
        'users' => array(self::HAS_MANY, 'User', 'company_id'),
        'businessUnits' => array(self::HAS_MANY, 'BusinessUnit', 'company_id'),
    );
}

2)然后您可以创建标准:

$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('status',$this->status);
$criteria->with = array('users', 'businessUnits');
$criteria->together = true;

3)拥有所有模型:

$models = Company::model()->findAll($criteria);

然后对于每个模型,您都有用户和业务部门:

foreach($models as $m)
{
     // Users
     $users = $m->users;
     $bu = $m->businessUnit;
}

4) 拥有活跃的数据提供者:

$dataProvider = new CActiveDataProvider('Company', array('criteria' => $criteria);
于 2016-03-25T14:34:25.400 回答