Yii问题检索关系数据

时间:2016-03-09 08:33:47

标签: activerecord yii relational-database relation

我在我的Yii应用程序中创建了一个新表,它将用作关系表,只存储ID,它非常简单,但我无法实际获取从模型传递的任何信息,即使ID匹配。谁能看到我哪里出错?

用户模型(有许多关系,但我只是包含了一个有问题的人)

public function relations() {
        return array(
            'onsiteGroup' => array(self::HAS_MANY, 'EventAttendeesGroups', 'user_id'),
        );
    }

EventAttendeeGroups模型

class EventAttendeesGroups extends CActiveRecord
{

    public function tableName()
    {
        return '{{event_attendees_groups}}';
    }

    public function rules()
    {
        return array(
            array('user_id, group_id', 'required'),
            array('user_id, group_id', 'numerical', 'integerOnly'=>true),
            array('user_id, group_id', 'safe'),
            array('id, user_id, group_id', 'safe', 'on'=>'search'),
        );
    }

    public function relations()
    {
        return array(
                    'user' => array(self::BELONGS_TO, 'User', 'user_id'),
                    'onsiteGroupName' => array(self::BELONGS_TO, 'EventAttendeesGroupName', 'group_id'),
        );
    }

    public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'user_id' => 'User',
            'group_id' => 'Group',
        );
    }

    public function search()
    {
        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        $criteria->compare('user_id',$this->user_id);
        $criteria->compare('group_id',$this->group_id);

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }
}

我的数据是正确的,用户ID存在于用户表和EventAttendeeGroups表中,但如果在用户视图gridview表中尝试以下操作,我会得到“未设置”

array(
            'name' => 'group_id',
            'type' => 'raw',
            'value' => $model->onsiteGroup->group_id,
        ),

谁能看到我哪里出错???

1 个答案:

答案 0 :(得分:0)

您收到错误了吗?什么是输出?您是否尝试渲染CGridView或者是什么,如果是,它是否形成?

有一个想法,你确定吗

$model->onsiteGroup->group_id

是对象名称而不是

$model->onsiteGroupName->group_id

只是一个想法。