Yii2 - 带表单模型的loadMultiple

时间:2018-01-17 11:06:19

标签: yii yii2

我有一个非常简单的场景,我从最终用户那里收到Variance Positions的列表。为了能够验证输入的结构,我为我应该收到的单个项目创建了以下模型:

class VariancePositionsForm extends Model{
    public $id;
    public $position;

    public function rules()
    {
        return [
            [['id','position'], 'required'],
            [['id', 'position'], 'integer'],
        ];
    }
}

在控制器中,我有以下内容:

    $variancePositions = [];
    for($i=0;$i<sizeof(Yii::$app->request->post());$i++)
    {
        $variancePositions[]  = new VariancePositionsForm(); 
    }
    VariancePositionsForm::loadMultiple($variancePositions, Yii::$app->request->post());

但是,当我尝试var_dump($variancePositions)时,我发现它是空的。换句话说,loadMultiple()未加载模型。我究竟做错了什么?

1 个答案:

答案 0 :(得分:1)

因为您没有从表单加载模型,所以只能从json中添加一个空字符串到此函数的最后一个参数中:

VariancePositionsForm::loadMultiple($variancePositions, Yii::$app->request->post(), '');

看这里: https://github.com/yiisoft/yii2/blob/master/framework/base/Model.php#L884