yii2 - 模型加载函数不设置某些模型属性

ham*_*med 3 php yii2 yii2-advanced-app

我正在研究PHP Yii2应用程序.我对yii2 yii\base\Model.load函数有一个奇怪的问题.这是我的问题:

我有一个PaymentIncreaseBalanceForm如下所示的表单模型:

class PaymentIncreaseBalanceForm extends yii\base\Model {
     public $amount;
     public $receiptNumber;
     public $description;
     ...
}
Run Code Online (Sandbox Code Playgroud)

这是我的视图文件的一部分:

<?= $form->field($model, 'amount')->textInput(['maxlength' => true]) ?>

<?= $form->field($model, 'receiptNumber')->textInput(['maxlength' => true]) ?>

<?= $form->field($model, 'description')->textarea(['rows' => 6]) ?>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器动作:

 public function actionIncreaseBalance()
 {
      $modelForm = new PaymentIncreaseBalanceForm();
      if ($modelForm->load(Yii::$app->request->post()))
      {
              //some logic
      }

       return $this->render('increase-balance', [
                'model' => $modelForm,
      ]);
  }
Run Code Online (Sandbox Code Playgroud)

提交表格后,我登录Yii::$app->request->post()die()所有三个参数amount,receiptNumber,description存在于后与他们正确的价值观(每一件事情是对的).但是在调用$modelForm->load函数之后,这是我的模型属性:

$amount => 1000,
$receiptNumber => 887412141,
$description => NULL,
Run Code Online (Sandbox Code Playgroud)

$description永远是NULL!我不知道这个领域有什么问题.我的代码有问题吗?

Biz*_*ley 13

可能description在代码中没有为属性添加规则.

检查rules()方法以确认它.

默认情况下,方法load()仅对属性应用"安全"值,如果在当前方案中存在规则,则值被视为"安全".