ich hoffe mir kann jemand helfen. Und zwar bin ich recht neu im Umgang mit Yii und brauche ein paar Ideen, wie ich das folgende lösen kann:
Ich habe eine user-Tabelle in meiner MySQL-DB. In dieser Tabelle gibt es die Spalten id, user, password und email. später kommen vielleicht noch ein paar Felder hinzu.
Nun ist es so, dass ich die Form, über welche man einen neuen User anlegen oder bestehende ändern kann, schon angepasst habe. Allerdings will ich dort noch ein weiteres Feld einfügen, um sodass das Passwort bestätigt werden muss. Es gibt hierbei allerdings noch das Problem, dass nur beim Ändern kein Passwort eingegeben wird, das bisherige nicht geändert wird. Wie kann ich das über die Regeln etc. machen? Ich bin langsam echt am verzweifeln =(
password2 ist dabei eine provate Klassenvariable die du definieren und dann verwenden kannst wie alle anderen Felder des Modells, du kannst zum Beispiel eine Beschriebung dafür angeben und als activeTextField verwenden.
Um das Scenario 'register' zu nutzen musst du vor dem Validieren (save() oder validate()) im Controler umstellen das gerade dieses Scenario herscht, das funktioniert über folgenden Code:
$model->scenario='register';
Das ganze Beispiel hierzu findest du unter
http://www.yiiframew…e/de/form.model in der Rubrik “Angeben der Regeln zur Gültigkeitsprüfung” recht weit unten im Abschnitt. Such am besten auf der Seite nach register. Ein Beispiel wie das mit den Klassenvariablen funktioniert findest du zum Beispiel in der ContaktForm in deinem Modell Ordner (solltest du es nicht gelöscht haben), da ist das auch so gemacht.
das mit der privaten variable war wohl das problem. ich bin nicht auf die idee gekommen, dass ich das so machen muss.
Quote
Um das Scenario 'register' zu nutzen musst du vor dem Validieren (save() oder validate()) im Controler umstellen das gerade dieses Scenario herscht, das funktioniert über folgenden Code:
$model->scenario='register';
das scenario ist in meinem fall ja auch nichts anderes, als update bzw delete, wenn ich datensätze bearbeite?
wo genau poste ich so etwas, wenn ich, wie es bei mir der fall ist, ja einen CActiveRecord habe, da ich die daten auf der datenbank bearbeite?
Das Scenario kannst du nur verwenden wenn du es in den Rules eingibst. Wenn du kein Scenario angibst dann ist es auch keins. das standard ist das ohne angabe des scenarios.