我有一个非常简单的场景,我从最终用户那里收到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()
未加载模型。我究竟做错了什么?
答案 0 :(得分:1)
因为您没有从表单加载模型,所以只能从json中添加一个空字符串到此函数的最后一个参数中:
VariancePositionsForm::loadMultiple($variancePositions, Yii::$app->request->post(), '');
看这里: https://github.com/yiisoft/yii2/blob/master/framework/base/Model.php#L884