Ich arbeite an einer PHP Yii2-Anwendung. Ich habe ein seltsames Problem mit yii2 yii\base\Model.load
Funktion. Hier ist mein Problem:yii2 - Modellladefunktion setzt einige Modellattribute nicht
Ich habe ein Formular Modell PaymentIncreaseBalanceForm
wie unten genannt:
class PaymentIncreaseBalanceForm extends yii\base\Model {
public $amount;
public $receiptNumber;
public $description;
...
}
Hier ist ein Teil meiner Ansicht file:
<?= $form->field($model, 'amount')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'receiptNumber')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'description')->textarea(['rows' => 6]) ?>
Und das ist meine Controller-Aktion:
public function actionIncreaseBalance()
{
$modelForm = new PaymentIncreaseBalanceForm();
if ($modelForm->load(Yii::$app->request->post()))
{
//some logic
}
return $this->render('increase-balance', [
'model' => $modelForm,
]);
}
Nachdem ich das Formular abgeschickt habe, loggte ich Yii::$app->request->post()
mit die()
und alle drei Parameter amount
, receiptNumber
, description
existieren in der Post mit ihren richtigen Werten (alles stimmt). Aber nach $modelForm->load
Aufruf der Funktion, das ist mein Modell Attribut:
$amount => 1000,
$receiptNumber => 887412141,
$description => NULL,
$description
immer NULL ist! Ich weiß nicht, was das Problem mit diesem Feld ist. Gibt es ein Problem mit meinem Code?
Vielen Dank für Ihre Antwort. Das Hinzufügen von 'safe' löste mein Problem. – hamed
Bitte lesen Sie http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html, um die Bedeutung der verschiedenen Validatoren zu erhalten, die Sie in '' rules() '' 'angeben können. "Safe" ist ein spezieller Validator (nicht einmal gültig), für Ihre Beschreibung hätten Sie "string" verwenden können. – MacGyer
Bitte können Sie [diese Frage] auschecken (http://stackoverflow.com/questions/42591365/yii2-model-load) - funktioniert nicht wie erwartet – SaidbakR