0

我有一个表,其中包含同一用户的多条记录(每条记录略有不同 - 出于某种原因)。我需要能够使用标准的 Yii 表单一次编辑每条记录。

我已经尝试了以下代码,但我需要它等待每个表单提交,然后循环继续显示下一条记录的表单。目前,它在一个页面上同时显示每条记录的表单。

我确信我在很多很多项目之前就想出了如何做到这一点,但我不记得我做了什么让它正常工作:(

public function actionProcess()
{
    $system = get some data;

    foreach ($system as $item):
        $this->getExperience($item);
    endforeach;
}

protected function getExperience($item)
{
    $model = get data for the form

    if(isset($_POST['the_form'])):
        $model->attributes=$_POST['the_form'];
        if($model->save())
            return true;
    endif;

    $this->render('the_form', array('model'=>$model,));
}
4

1 回答 1

0

谢谢你的建议。我想出了自己的解决方案,为了他人的利益,我将分享:

$_stack = array(); // defined in the Class global space

public function actionProcess()
{
    $system = get some data

    foreach ($system as $item):
        $this->_stack[] = $item->id;
    endforeach;

    if(!empty($this->_stack))
        $this->getExperience();
}

protected function getExperience()
{
    if(empty($this->_stack))
        $this->redirect(array('somewhere else'));

    $model = get data for the form using $_stack[0] as the reference for what to obtain

    if(isset($_POST['the_form'])):
        $model->attributes=$_POST['the_form'];

        if($model->save()):
            array_shift($this->_stack);
            $this->getExperience();
        endif;
    endif;

$this->render('the_form', array('model'=>$model,));
}
于 2013-02-18T15:18:29.307 回答