Heim Backend-Entwicklung PHP-Tutorial Yii verwendet Formulare

Yii verwendet Formulare

Aug 08, 2016 am 09:33 AM
email entry gt model yii

1. Erstellen Sie ein Modell

a. Fügen Sie eine Basisklasse hinzu

verwenden Sie yii/base/Model

b eine Klassenvererbung Selbstbasisklasse

c. Erstellen Sie die erforderlichen Variablen

f 🎜> Zum Beispiel:

<?<span>php

namespace app\models;

</span><span>use</span><span> yii\base\Model;

</span><span>class</span> EntryForm <span>extends</span><span> Model
{
    </span><span>public</span> <span>$name</span><span>;
    </span><span>public</span> <span>$email</span><span>;

    </span><span>public</span> <span>function</span><span> rules()
    {
        </span><span>return</span><span> [
            [[</span>'name', 'email'], 'required'],<span>
            [</span>'email', 'email'],<span>
        ];
    }
}</span>
Nach dem Login kopieren
Diese Klasse erbt von einer von Yii bereitgestellten Basisklasse [[yiibaseModel]], die normalerweise zur Darstellung von Daten verwendet wird

Ergänzung: [[yiibaseModel]] wird als übergeordnete Klasse gewöhnlicher Modellklassen verwendet und hat nichts mit Datentabellen zu tun. [[yiidbActiveRecord]] ist normalerweise die übergeordnete Klasse einer normalen Modellklasse, hängt jedoch mit der Datentabelle zusammen (Übersetzung: Die Klasse [[yiidbActiveRecord]] erbt tatsächlich von [[yiibaseModel]] und fügt Datenbankverarbeitung hinzu).

Die Klasse

enthält zwei öffentliche Mitglieder, und

, die zum Speichern vom Benutzer eingegebener Daten verwendet werden. Es enthält auch eine Methode namens

, die eine Sammlung von Datenvalidierungsregeln zurückgibt. Die oben deklarierte Validierungsregel bedeutet: EntryForm Es sind sowohl die Werte nameemail als auch rules() erforderlich Der Wert von

  • muss die E-Mail-Regelüberprüfung nameemail erfüllen
  • Wenn Sie ein email-Objekt haben, das vom Benutzer übermittelte Daten verarbeitet, können Sie dessen Methode [[yiibaseModel::validate()|validate()]] aufrufen, um die Datenvalidierung auszulösen. Wenn die Datenvalidierung fehlschlägt, wird das Attribut [[yiibaseModel::hasErrors|hasErrors]] auf true gesetzt. Wenn Sie wissen möchten, welcher Fehler aufgetreten ist, rufen Sie [[yiibaseModel::getErrors|getErrors]] auf.

EntryForm

<?<span>php
</span><span>$model</span> = <span>new</span><span> EntryForm();
</span><span>$model</span>->name = 'Qiang'<span>;
</span><span>$model</span>->email = 'bad'<span>;
</span><span>if</span> (<span>$model</span>-><span>validate()) {
    </span><span>//</span><span> 验证成功!</span>
} <span>else</span><span> {
    </span><span>//</span><span> 失败!
    // 使用 $model->getErrors() 获取错误详情</span>
}
Nach dem Login kopieren
2. Vorgang erstellen

Als nächstes müssen Sie eine Operation im

Controller für das neue Modell erstellen. Die Erstellung und Verwendung von Aktionen wurde im Abschnitt „Sag Hallo“ erklärt.

siteentry

Dieser Vorgang erstellt zunächst ein
-Objekt. Versuchen Sie dann, vom Benutzer übermittelte Daten von
<?<span>php

namespace app\controllers;

</span><span>use</span><span> Yii;
</span><span>use</span><span> yii\web\Controller;
</span><span>use</span><span> app\models\EntryForm;

</span><span>class</span> SiteController <span>extends</span><span> Controller
{
    </span><span>//</span><span> ...其它代码...</span>

    <span>public</span> <span>function</span><span> actionEntry()
    {
        </span><span>$model</span> = <span>new</span><span> EntryForm;

        </span><span>if</span> (<span>$model</span>->load(Yii::<span>$app</span>->request->post()) && <span>$model</span>-><span>validate()) {
            </span><span>//</span><span> 验证 $model 收到的数据

            // 做些有意义的事 ...</span>

            <span>return</span> <span>$this</span>->render('entry-confirm', ['model' => <span>$model</span><span>]);
        } </span><span>else</span><span> {
            </span><span>//</span><span> 无论是初始化显示还是数据验证错误</span>
            <span>return</span> <span>$this</span>->render('entry', ['model' => <span>$model</span><span>]);
        }
    }
}</span>
Nach dem Login kopieren
zu sammeln, die von der [[yiiwebRequest::post()]]-Methode von Yii erfasst werden. Wenn das Modell erfolgreich mit Daten gefüllt wurde (d. h. der Benutzer hat das HTML-Formular übermittelt), ruft die Operation [[yiibaseModel::validate()|validate()]] auf, um sicherzustellen, dass der Benutzer gültige Daten übermittelt hat.

EntryForm Ergänzung: Der Ausdruck $_POST stellt die

Anwendungsinstanz Yii::$app dar, bei der es sich um einen global zugänglichen Singleton handelt. Gleichzeitig ist es auch ein Service Locator, der , , und andere Komponenten mit spezifischen Funktionen bereitstellen kann. Im obigen Code wird die -Komponente verwendet, um auf die von der Anwendungsinstanz empfangenen request-Daten zuzugreifen. responsedbrequest $_POSTNachdem der Benutzer das Formular abgeschickt hat, rendert der Vorgang eine Ansicht mit dem Namen , um die vom Benutzer eingegebenen Daten zu bestätigen. Wenn das Formular ohne Ausfüllen übermittelt wird oder die Daten Fehler enthalten (Übersetzer: Das E-Mail-Format ist beispielsweise falsch), wird in der

-Ansicht die Ausgabe zusammen mit dem Formular und den Details des Validierungsfehlers gerendert.

entry-confirmHinweis: In diesem einfachen Beispiel präsentieren wir nur die Bestätigungsseite mit gültigen Daten. In der Praxis sollten Sie die Verwendung von [[yiiwebController::refresh()|refresh()]] oder [[yiiwebController::redirect()|redirect()]] in Betracht ziehen, um entry

das Problem der wiederholten Formularübermittlung zu vermeiden

.

3. Erstellen Sie eine Ansicht

Schließlich erstellen Sie zwei Ansichtsdateien und

. Sie werden durch die soeben erstellte Aktion
gerendert. In der

entry-confirm-Ansicht werden lediglich die übermittelten Namens- und E-Mail-Daten angezeigt. Ansichtsdateien werden in entry gespeichert. entry

entry-confirm views/site/entry-confirm.php

Die Ansicht
<?<span>php
</span><span>use</span><span> yii\helpers\Html;
</span>?>
<p>You have entered the following information:</p>

<ul>
    <li><label>Name</label>: <?= Html::encode(<span>$model</span>->name) ?></li>
    <li><label>Email</label>: <?= Html::encode(<span>$model</span>->email) ?></li>
</ul>
Nach dem Login kopieren
zeigt ein HTML-Formular an. Ansichtsdateien werden in
gespeichert

entryviews/site/entry.php

<?<span>php
</span><span>use</span><span> yii\helpers\Html;
</span><span>use</span><span> yii\widgets\ActiveForm;
</span>?>
<?php <span>$form</span> = ActiveForm::begin(); ?>

    <?= <span>$form</span>->field(<span>$model</span>, 'name') ?>

    <?= <span>$form</span>->field(<span>$model</span>, 'email') ?>

    <div <span>class</span>="form-group">
        <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
    </div>

<?php ActiveForm::<span>end</span>(); ?>
Nach dem Login kopieren
Die Ansicht verwendet ein leistungsstarkes Widget [[yiiwidgetsActiveForm|ActiveForm]], um HTML-Formulare zu generieren. Die und werden verwendet, um die öffnenden und schließenden Tags des Formulars darzustellen. Die Methode [[yiiwidgetsActiveForm::field()|field()]] wird zwischen diesen beiden Methoden verwendet, um das Eingabefeld zu erstellen. Das erste Eingabefeld ist für „Name“ und das zweite Eingabefeld für „E-Mail“. Verwenden Sie dann die Methode [[yiihelpersHtml::submitButton()]], um eine Senden-Schaltfläche zu generieren.

begin()end()

Denken Sie daran, Widgets zu verwenden. Sie müssen diese beiden vorstellen
<span>use</span><span> yii\helpers\Html;
</span><span>use</span> yii\wigets\ActiveForm;
Nach dem Login kopieren
Das Obige stellt die Verwendung von Formularen in Yii vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

So verwenden Sie die Module email, smtplib, poplib und imaplib zum Senden und Empfangen von E-Mails in Python So verwenden Sie die Module email, smtplib, poplib und imaplib zum Senden und Empfangen von E-Mails in Python May 16, 2023 pm 11:44 PM

Der Weg einer E-Mail ist: MUA: MailUserAgent – ​​Mail User Agent. (d. h. E-Mail-Software ähnlich wie Outlook) MTA: MailTransferAgent – ​​Mail-Transfer-Agent, also E-Mail-Dienstanbieter wie NetEase, Sina usw. MDA: MailDeliveryAgent – ​​Mail-Zustellungsagent. Ein Server des E-Mail-Dienstanbieters sender->MUA->MTA->MTA->if

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

Trezor Cold Wallet: Funktions- und Nutzungshandbuch für Model One und Model T Trezor Cold Wallet: Funktions- und Nutzungshandbuch für Model One und Model T Jan 19, 2024 pm 04:12 PM

Nachdem an vielen zentralisierten Börsen Probleme aufgetreten waren, begannen immer mehr Kryptowährungsinvestoren, Vermögenswerte auf Cold Wallets zu übertragen, um die von zentralisierten Börsen ausgehenden Risiken zu verringern. In diesem Artikel wird Trezor vorgestellt, der weltweit erste Cold Wallet-Anbieter. Seit der Einführung des ersten Cold Wallets im Jahr 2014 wurde es in vielen Ländern auf der ganzen Welt verkauft. Zu den Produkten von Trezor gehören das 2014 eingeführte Model One und die 2018 eingeführte Weiterentwicklung des Model T. Im Folgenden werden weiterhin die Unterschiede zwischen diesen beiden Produkten und anderen Cold Wallets vorgestellt. Was ist Trezor Cold Wallet? Im Jahr 2014 brachte Trezor das erste Cold Wallet ModelOne auf den Markt. Neben gängigen BTC, ETH, USDT und anderen Währungen unterstützt das Wallet auch mehr als 1.000 weitere Währungen.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Wie verwende ich das Yii3-Framework in PHP? Wie verwende ich das Yii3-Framework in PHP? May 31, 2023 pm 10:42 PM

Mit der Weiterentwicklung des Internets wird auch die Nachfrage nach der Entwicklung von Webanwendungen immer größer. Für Entwickler erfordert die Entwicklung von Anwendungen ein stabiles, effizientes und leistungsstarkes Framework, das die Entwicklungseffizienz verbessern kann. Yii ist ein führendes Hochleistungs-PHP-Framework, das umfangreiche Funktionen und gute Leistung bietet. Yii3 ist die nächste Generation des Yii-Frameworks, das die Leistung und Codequalität basierend auf Yii2 weiter optimiert. In diesem Artikel stellen wir vor, wie Sie das Yii3-Framework zum Entwickeln von PHP-Anwendungen verwenden.

So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System So entwickeln Sie mit dem PHP-Framework Yii ein hochverfügbares Cloud-Backup-System Jun 27, 2023 am 09:04 AM

Mit der kontinuierlichen Weiterentwicklung der Cloud-Computing-Technologie ist die Datensicherung zu etwas geworden, das jedes Unternehmen durchführen muss. In diesem Zusammenhang ist es besonders wichtig, ein hochverfügbares Cloud-Backup-System zu entwickeln. Das PHP-Framework Yii ist ein leistungsstarkes Framework, das Entwicklern dabei helfen kann, schnell leistungsstarke Webanwendungen zu erstellen. Im Folgenden wird vorgestellt, wie Sie mit dem Yii-Framework ein hochverfügbares Cloud-Backup-System entwickeln. Entwerfen des Datenbankmodells Im Yii-Framework ist das Datenbankmodell ein sehr wichtiger Teil. Denn das Datensicherungssystem erfordert viele Tabellen und Beziehungen

See all articles