Ich bin ein Anfänger so leid, wenn es offensichtlich ist. Also, ich möchte, dass verschiedene Regeln davon abhängen, was der Benutzer auswählt. Ich habe ein Update Form:Wie macht man verschiedene Regeln in yii2, hängt vom Radiobutton Wert ab?
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'news_title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'news_content')->textarea(['rows' => 6]) ?>
<?= $form->field($model, 'check')->label('Picture update:')
->radioList(
[ 2 => 'Yes', 1 => 'No', 0 => 'Delete']) ?>
<?= $form->field($model, 'file')->fileInput() ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
Und nur, wenn der radioList einen Wert ‚2‘ Ich möchte die FileInput- verlangen. Ich meine, wenn der Benutzer 1 => 'Nein' oder 0 => 'Löschen' auswählt, kann der Feldeintrag leer sein.
public function rules() {
return [
[['news_content'], 'string'],
[['news_content'], 'required'],
[['created_at', 'updated_at'], 'safe'],
[['news_title', 'news_picture', 'created_by', 'updated_by'], 'string', 'max' => 255],
[['news_title'], 'required'],
[['news_picture'], 'required'],
[['file'], 'file', 'skipOnEmpty' => $this->checkRadio(), 'extensions' => 'png, jpg',],
[['check'], 'required', 'message' => 'Please ....'],
];
}
public function checkRadio() {
if ($this->check == 2) {
return false;
} else {
return true;
}
}
Ich habe versucht, eine Funktion im Modell, aber der $ check Variable immer einen Wert 0 hat zu schreiben, und ich verstehe wirklich nicht, warum. Gibt es dafür eine Lösung in Yii2? Hier
In diesem Fall ist die Datei immer für mich erforderlich. – Legenda
Ich habe meine Antwort bearbeitet und auf dem echten Formular getestet. Der Punkt hier ist, dass Sie das richtige Optionsfeld in Ihrer whenClient-Überprüfung anvisieren. – user2831723