2016-04-28 19 views
0

In meiner Anwendung habe ich ein Modell namens Benutzer, wo ich ein Szenario für Validierungen implementiert haben.Yii2 Modell mit Szenarien speichern alle außer das Passwort-Feld

Mit dieser Konfiguration kann ich einen neuen Benutzer erstellen, löschen und alle Felder außer 'password' aktualisieren.

Dies ist die Aktion in meinem Controller:

public function actionUpdate($id) 
{ 
    $user = User::findOne($id); 

    if($user->load(Yii::$app->request->post())&& $user->validate()) { 
     $user->update(); 
     $this->redirect(\yii\helpers\Url::toRoute('index')); 
    } 

    return $this->render('update',[ 
     'user' => $user, 
    ]); 

} 

i geprüft habe bereits, dass das Feld ‚Passwort‘ auf Post-Parametern mit Erfolg geführt wird.

und das ist meine Ansicht:

<h1> Edit User </h1> 
<?php 
    $form = ActiveForm::begin([ 
      'id' => 'active-form', 
      'options' => [ 
       'class' => 'form-horizontal', 
       'enctype' => 'multipart/form-data' 
      ], 
     ]); 
?> 

<?= $form->errorSummary($user); ?> 

<?= $form->field($user, 'name') ?> 

<?= $form->field($user, 'surname') ?> 

<?= $form->field($user, 'username') ?> 

<?= $form->field($user, 'email') ?> 

<?= $form->field($user, 'password')->passwordInput() ?> 

<?php if(Yii::$app->user->identity->id_role === User::USER_ADMIN): ?> 

<?= $form->field($user, 'id_role')->dropDownList(
     Role::find()->select(['name','id'])->indexBy('id')->column(), 
     ['prompt'=>'Select a role'] 
     ); 
?> 

<?php endif; ?> 

<div class="form-group"> 
    <?= Html::submitButton('Save the user', ['class' => 'btn btn-success']) ?> 
</div> 

<?php ActiveForm::end(); ?> 

Ich weiß wirklich nicht, warum ich immer diese Fehlermeldung

+0

Entfernen Sie '' on '=> self :: SCENARIO_RESET_PASSWORD] 'und prüfen Sie einmal. –

Antwort

1

Bitte entfernen

'on' => self::SCENARIO_RESET_PASSWORD 

oder Ihre SZENARIOS definieren in Ihrem Controller-Aktion als

$user->scenario = 'SCENARIO_RESET_PASSWORD'; 
+0

Ich habe es versucht, aber es funktioniert nicht – giovaZ

+0

nicht Szenario im Modell verwenden, aus dem Modell entfernen und nur im Controller verwenden. –

+0

Ich habe die Szenarien komplett aus Modell und Controller gelöscht, aber es funktioniert nicht – giovaZ