Heim  >  Artikel  >  Backend-Entwicklung  >  Offizieller Yii Framework-Leitfaden, Serie 18 – Formulare verwenden: Aktionen erstellen

Offizieller Yii Framework-Leitfaden, Serie 18 – Formulare verwenden: Aktionen erstellen

黄舟
黄舟Original
2017-02-13 09:12:161025Durchsuche

Mit dem vorliegenden Modell können wir mit dem Schreiben der Logik für den Betrieb dieses Modells beginnen. Wir setzen diese Logik in eine Controller-Aktion ein. Für das Anmeldeformular-Beispiel lautet der entsprechende Code:

public function actionLogin()
{
    $model=new LoginForm;
    if(isset($_POST['LoginForm']))
    {
        // 收集用户输入的数据
        $model->attributes=$_POST['LoginForm'];
        // 验证用户输入,并在判断输入正确后重定向到前一页
        if($model->validate())
            $this->redirect(Yii::app()->user->returnUrl);
    }
    // 显示登录表单
    $this->render('login',array('model'=>$model));
}

Wie oben gezeigt, haben wir zunächst ein LoginForm-Modellbeispiel erstellt Bei der Anfrage handelt es sich um eine POST-Anfrage (d. h. das Anmeldeformular wurde gesendet). Wir füllen $_POST['LoginForm'] mit den übermittelten Daten aus, validieren dann diese Eingabe und leiten den Browser des Benutzers zu den vorherigen Seiten um, die eine Authentifizierung erfordern. Wenn die Überprüfung fehlschlägt oder auf diese Aktion zum ersten Mal zugegriffen wird, rendern wir die Ansicht $model. Den Inhalt dieser Ansicht erläutern wir im nächsten Abschnitt. login

Tipp: In der Aktion verwenden wir login, um die Seiten-URL Yii::app()->user->returnUrl abzurufen, für die zuvor eine Authentifizierung erforderlich war. Komponente ist ein CWebUser (oder seine Unterklasse), der Benutzersitzungsinformationen (z. B. Benutzername, Status) darstellt. Weitere Einzelheiten finden Sie unter Authentifizierung und Autorisierung.Yii::app()->user

Lassen Sie uns besonderes Augenmerk auf die folgende PHP-Anweisung legen, die in der Aktion

erscheint: login


$model->attributes=$_POST['LoginForm'];

Wie wir in „Sichere Eigenschaftszuweisung“ besprochen haben, füllt diese Codezeile das Modell mit vom Benutzer übermittelten Daten.

Eigenschaften werden von CModel definiert, das ein Array von Name-Wert-Paaren akzeptiert und jeden Wert dem entsprechenden Modellmerkmal zuweist. Wenn uns also attributes ein solches Array liefert, entspricht der obige Code dem folgenden langen Absatz (vorausgesetzt, alle erforderlichen Funktionen sind im Array vorhanden): $_POST['LoginForm']


$model->username=$_POST['LoginForm']['username'];
$model->password=$_POST['LoginForm']['password'];
$model->rememberMe=$_POST['LoginForm']['rememberMe'];

Hinweis: Damit uns ein Array anstelle einer Zeichenfolge übergeben kann, müssen wir bei der Benennung von Formularen eine Konvention befolgen Felder. Konkret benennen wir das Formularfeld, das dem Feature $_POST['LoginForm'] in der Modellklasse entspricht C. Beispielsweise können wir a verwenden, um das Formularfeld zu benennen, das dem C[a]-Attribut entspricht. LoginForm[username]username

Jetzt müssen Sie nur noch die
-Ansicht erstellen, die ein HTML-Formular mit den erforderlichen Eingaben enthalten sollte.

loginDas Obige ist der offizielle Leitfaden zum Yii-Framework, Serie 18 – Verwenden von Formularen: Erstellen von Aktionen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn