获取Yii中的外键

时间:2012-01-24 10:54:53

标签: php yii

我有像

这样的数据库
 ======= Group ========
 id
 name

 ======= Member ========
 id
 group_id
 firstname
 secondname
 membersince

现在,在我的Group Controller文件中,我使用了动作更新来更新模型

public function actionUpdate($id)
  {
    $model=$this->loadModel($id);
    $member = Member::model()->findByPk($_GET['id']);

    if(isset($_POST['Group']))
    {
      $model->attributes=$_POST['Group'];
      if($model->save())
      {
        $member->attributes = $_POST['Member'];
        $member->group_id = $model->id;
        if($member->save())
        {
          $this->redirect(array('view','id'=>$model->id));
        }
      }
      $this->redirect(array('view','id'=>$model->id));
    }

    $this->render('create',array(
      'model'=>$model,
      'member'=>$member,
    ));
  }

现在因为我有两个模型组和成员,并且在组控制器文件中我正在保存成员属性。所以我的问题是当我使用这一行时  $member = Member::model()->findByPk($_GET['id']); 从表成员获取group_id,我可以获取该组的完整字段。那么有人可以告诉我如何从该表中获取group_id。我搜索了documntation但没有像findByFk这样的任何字段。所以请指导我。

2 个答案:

答案 0 :(得分:0)

Group和Member之间的关系是ONE到MANY,因此单个组ID可能存在多个成员,并且您的操作行为看起来不完全正确。

无论如何,您要查找的代码应如下:

$member = Member::model()->findByAttributes(array('group_id', $_GET['id']));

这里记录: http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findByAttributes-detail

答案 1 :(得分:0)

您可以使用findByAttributes()

$member = Member::model()->findByAttributes(array('group_id'=>$_GET['id']));