Yii - 为相关模型创建记录并填充父表单

时间:2014-03-19 12:32:08

标签: forms yii

这是我的第一个堆栈溢出问题,所以我保持手指交叉!

情景:

我在合同和客户之间存在关系,在模型中表示为:

      'customer' => array(self::BELONGS_TO, 'Customer', 'customer_id'),

现在,这很好 - 我可以在视图中访问我的相关模型而没有问题。

然而,我想要的是:

  • 添加添加“新客户”的功能。创建合同页面内的按钮(很好)
  • 启动/ views / customer / create表单(也没关系)
  • 然后,一旦创建它,​​让它捕获新ID,关闭窗口并返回到创建合同页面,其中预先填充了新创建的客户ID。我不能为我的生活找到如何做到这一点:(

任何帮助表示感谢。

加里

1 个答案:

答案 0 :(得分:0)

一种方法是,当您的actionSave()保存客户时,您可以将页面重定向到类似

的页面
  

www.website.com/contract/create/CUSTOMER_ID

现在,您可以通过这种方式将用户ID传递给表单并预先填充它。 合同创建行为如下: -

public function actionCreate($user_id = NULL){
    ...
    $model = new Contract();
    if($user_id)
        //You can also check here if the user ID is valid or not
        $model->user_id = $user_id;
    $this->render('create', array(
        'model' => $model
    ));
}

另一种方法是您可以将用户ID放在会话中并将用户重定向到“合同创建”页面并在那里获取用户ID,然后再将其传递给模型,如上所述。

希望它有助于解决这个问题。