【问题标题】:Yii2 - loadMultiple with form modelYii2 - 带有表单模型的 loadMultiple
【发布时间】:2023-03-11 00:14:01
【问题描述】:

我有一个非常简单的场景,我从最终用户那里收到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() 没有加载模型。我究竟做错了什么?

【问题讨论】:

  • Yii::$app-&gt;request-&gt;post()的内容?
  • 刚刚用内容更新了问题:)
  • loadMultiple() 返回什么?对或错。我猜你应该打电话给Model::loadMultiple() 而不是VariancePositionsForm::loadMultiple()Reference
  • 不幸的是,这不是它
  • 什么意思?

标签: yii yii2


【解决方案1】:

因为你不从表单加载模型,只从json你必须在这个函数的最后一个参数中添加一个空字符串:

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

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

【讨论】:

  • 非常感谢。这非常有帮助:)
猜你喜欢
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
相关资源
最近更新 更多