我有一个包含同一用户的多个记录的表(每个记录略有不同 - 原因)。 我需要能够使用标准的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,));
}
答案 0 :(得分: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,));
}