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