我有类似的数据库
======= 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,
));
}
现在,由于我有两个模型Group和Member,并且在组控制器文件中,我正在保存成员属性。所以我的问题是当我使用这条线时$member = Member::model()->findByPk($_GET['id']);
用于从表成员中获取group_id,在那里我可以获得组的完整字段。有人能告诉我如何从那个表中获取group_id吗。我搜索了文档,但没有找到像findByFk这样的字段。所以请指导我。
您可以使用findByAttributes()
$member = Member::model()->findByAttributes(array('group_id'=>$_GET['id']));
is Group和Member之间的关系是ONE对MANY,因此一个组id可能存在多个成员,并且您的操作行为看起来并不完全正确。
无论如何,您要查找的代码应该是以下代码:
$member = Member::model()->findByAttributes(array('group_id', $_GET['id']));
记录如下:http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findByAttributes-详细