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()仅对属性应用"安全"值,如果在当前方案中存在规则,则值被视为"安全".