gpt4 book ai didi

php - 外键未存储相关模型的实际值

转载 作者:行者123 更新时间:2023-11-29 03:42:25 25 4
gpt4 key购买 nike

我正在 Yii 中做一个小应用程序。为此我有这样的数据库

=============
+ GROUP +
=============
+ id(pk) +
+ name +
+ description+
++++++++++++++


=============
+ MEMBERS +
==============
+ id(pk) +
+ group_id(fk)+
+ name +
+ description +
++++++++++++++

Group model中的关系是这样的

public function relations()
{
return array(
'members' => array(self::HAS_MANY,'Members','group_id'),
);
}

成员模型中的Relation是这样的

 public function relations()
{
return array(
'group' => array(self::BELONGS_TO,'Group','group_id'),
);
}

根据要求,我在组模型中渲染了成员。所以我的 Action 创建 Controller 是这样的

    public function actionCreate()
{
$model=new Group;
$members=new Members;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);

if(isset($_POST['Group'],$_POST['Members']))
{
$model->attributes=$_POST['Group'];
$members->attributes=$_POST['Members'];
$valid = $model->validate();
$valid = $members->validate();
if($valid)
{
$members->save(false);
$group->save(false);
$members->group_id = $model->getPrimaryKey();

$model->save(false);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'members'=>$members,
));
}

因此,组模型的 primarykey 应该与 members 模型中 group_id 的 forignkey 相同。但它不是那样显示的。group_id 保持为“0” 每次。有人能告诉我这里有什么错误的部分吗?

最佳答案

您正在调用的 $model->getPrimaryKey():

  • 首先,可以用作$model->primaryKey
  • 其次是返回一条新记录的主键,该记录还没有被插入,所以它没有主键。

在添加任何子项之前先保存父记录 $group->save(false); 正在尝试这样做,但 $group 不是模型 :)

关于php - 外键未存储相关模型的实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12001765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com