


PHP-Entwicklungsframework Yii Framework-Tutorial (11) UI-Komponente ActiveForm-Beispiel
CActiveForm wurde im Yii Framework-Entwicklungs-Tutorial (7) mit CHtml zum Erstellen eines Formulars und im Yii Framework-Entwicklungs-Tutorial (8) mit FormModel kurz vorgestellt. In ein paar Tagen steht Weihnachten vor der Tür. Helfen Sie dem Weihnachtsmann dabei, eine Umfrage zu den Weihnachtsgeschenken zu erstellen, die sich jeder wünscht, und zu den Speisen, die er zum Weihnachtsessen essen möchte.
Hier teilen wir einen Teil des Codes als Framework für nachfolgende Beispiele. Es kopiert im Grunde das Hello World-Beispiel, fügt ein leeres DataModel hinzu und verwendet den Standard-Controller (SiteController) und die Standard-Aktion (actionIndex). Verwenden Sie die Standardkonfigurationsdatei und den Code-Download.
Das Sammeln von Benutzerdaten über HTML-Formulare ist eine der Hauptaufgaben der Webprogrammentwicklung. Zusätzlich zum Formularentwurf müssen Entwickler das Formular auch mit vorhandenen oder Standarddaten füllen, Benutzereingaben validieren, entsprechende Fehlermeldungen für ungültige Eingaben anzeigen und Eingaben im dauerhaften Speicher speichern. Yii vereinfacht diesen Workflow mit seiner MVC-Struktur erheblich.
Bei der Verarbeitung von Formularen in Yii sind in der Regel folgende Schritte erforderlich:
Erstellen Sie eine Modellklasse, die die zu sammelnden Datenfelder darstellt.
Erstellen Sie eine Controller-Aktion als Reaktion auf die Formularübermittlung.
Erstellen Sie das Formular für die Controller-Aktion im Ansichtsskript.
Datenmodell erstellen
class DataModel extends CFormModel{public $firstName;public $lastName; public $favouriteGift; public $favouriteDinner; public function rules(){return array(array('firstName, lastName', 'required'), array('favouriteGift,favouriteDinner', 'safe'));} static $gifts=array('1'=>'iPad','2'=>'Remote control helicopter','3'=>'60 inch 3D LED TV','4'=>'Holy Bible',); static $meals=array('1'=>'Egg','2'=>'Ham','3'=>'Chicken','4'=>'Pork','5'=>'Beer','6'=>'Coke','7'=>'Wine',);}
firstName und lastName werden verwendet, um den Namen des Benutzers aufzuzeichnen, $favouriteGift und $favouriteDinner werden verwendet, um die Namen der Geschenke und Lebensmittel des Benutzers aufzuzeichnen. $gifts, $meals definieren statisch die Arten von Geschenken und Lebensmittelarten, die den Benutzern zur Verfügung stehen. Hierbei ist zu beachten, dass „Vorname“ und „Nachname“ erforderlich sind und dass „$favoriteGift“ und „$favoriteDinner“ so eingestellt sind, dass sie sicher kopiert werden können. Diese werden durch die Regeln des Modells definiert.
Aktion definieren
Ändern Sie die Aktionsmethode von SiteController:
public function actionIndex(){$model=new DataModel(); if(!emptyempty($_POST['DataModel'])){$model->attributes=$_POST['DataModel']; if($model->validate()){$this->render('choice', array('model' => $model,)); return;}} $this->render('index', array('model' => $model,));}
Hier werden zwei Ansichten definiert, der Index wird verwendet, um Benutzereingaben zu erhalten, und die Auswahl zeigt die Benutzerauswahl an Ergebnisse. $model->attributes=$_POST ['DataModel']; Wie wir in der sicheren Attributzuweisung besprochen haben, füllt diese Codezeile das Modell mit vom Benutzer übermittelten Daten. Das Attribute-Attribut wird von CModel definiert, das ein Array von Name-Wert-Paaren akzeptiert und jeden Wert dem entsprechenden Modellattribut zuweist.
Ansicht definieren
Definieren Sie zunächst index.php. In diesem Beispiel wird CActiveForm für eine nahtlose und konsistente Überprüfung sowohl auf der Client- als auch auf der Serverseite verwendet.
>beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'focus'=>array($model,'firstName'), )); ?>
Dieses Beispiel ist relativ einfach und verwendet diese komplexen Prüfungen nicht. Es erfordert lediglich, dass „Vorname“ und „Nachname“ nicht leer sind, was in den Regeln in DataModel durch „erforderlich“ definiert ist.
beginWidget('CActiveForm'); ?> errorSummary($model); ?> label($model,'firstName'); ?>textField($model,'firstName') ?> label($model,'lastName'); ?>textField($model,'lastName') ?> Choose your Christmas Gift radioButtonList($model,'favouriteGift',DataModel::$gifts) ?> Choose your Christmas dinner checkBoxList($model,'favouriteDinner',DataModel::$meals) ?> endWidget(); ?> View Choice 就更简单,显示用户选择结果: Christmas "; ?>firstName . ' ' . $model->lastName . '.' ;?> You will be givenecho DataModel::$gifts[$model->favouriteGift];?>on Christmas Day. And you will haveforeach($model->favouriteDinner as $dinner){echo DataModel::$meals[$dinner] . ' ';}?> for Christmas dinner.
Die Laufergebnisse sind wie folgt:
vcyzzCgxMSkgVUnX6bz+IEFjdGl2ZUZvcm3KvsD9" src="/uploadfile/2016/0106/20160106062558152.png" />
Oben Dies ist der Inhalt des PHP-Entwicklungsframeworks Yii Framework-Tutorial (11) UI-Komponente ActiveForm-Beispiel Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

TomakePhpapplicationsfaster, folgt der THESESTEPS: 1) UseOpCodeCaching LikeopcachetOstorePrecompiledScriptByteCode.2) MinimizedatabasequeriesByusedQueryCachingandefficiendexing.3) Hebel -FeaturesForbetTerCodeeffizienz.4) Implementierungspflichtiger Strategie

ToimProvePhpapplicationSpeed, folge theSeSteps: 1) enableOpCodeCachingWithAPCUToreducescriptexexexeTime.2) ImplementDatabaseQueryCachingusedpdotominimizedatabaseHits.3) UseHttp/2TomultiplexRequeTsReconneconneconneconneconneconneconnectionOverhead.4))

Die Abhängigkeitsinjektion (DI) verbessert die Testbarkeit von PHP -Code durch explizit transitive Abhängigkeiten signifikant. 1) DI -Entkopplungsklassen und spezifische Implementierungen machen Tests und Wartung flexibler. 2) Unter den drei Typen injiziert der Konstruktor explizite Expressionsabhängigkeiten, um den Zustand konsistent zu halten. 3) Verwenden Sie DI -Container, um komplexe Abhängigkeiten zu verwalten, um die Codequalität und die Entwicklungseffizienz zu verbessern.

DatabaseQueryoPtimizationInphpinvolvesseveralStrategieShancePerformance.1) selectonlynn -nötigesColumntededatatransfer.2) Verwenden Sie IndexingTospeedUpDatarErvieval.3) ImplementQueryCachingtoStoreresultsOffRequerien.4) Nützliche Stände

PhpisusedForSensionsemailsDuetoitsbuilt-inmail () functionandSupportelibrary-LikephpmailerandSwiftmailer.1) UsetheMail () Funktionsbasicemails, Butithaslimitations.2) Verwenden SiePr

PHP -Performance -Engpässe können in den folgenden Schritten gelöst werden: 1) Verwenden Sie XDEBUG oder Blackfire für die Leistungsanalyse, um das Problem herauszufinden. 2) Datenbankabfragen optimieren und Caches wie APCU verwenden; 3) Verwenden Sie effiziente Funktionen wie Array_filter, um Array -Operationen zu optimieren. 4) Opcache für Bytecode -Cache konfigurieren; 5) Optimieren Sie das Front-End, z. B. die Reduzierung von HTTP-Anfragen und das Optimieren von Bildern; 6) Überwachen und optimieren Sie die Leistung kontinuierlich. Durch diese Methoden kann die Leistung von PHP -Anwendungen erheblich verbessert werden.

Abhängigkeitsinjektion (DI) InphpisadesignPatternThatManageSandRecesClass -Dependenzen, EnhancingCodemodularity, Testbarkeit und Maschinenbarkeit.itallowsspassingdependencieStaDatabaseConnectionStoclassesasparameters, Erleichterung der Erleichterung von Erleichterung von Vermittlungen und Erleichterung von Erleichterung von und scalierbarkeit.

CachingimProvePhpperformanceByStoringResultsofComputationsorquerienforquickretrieval, ReducingServerloadAnenHancingResponSetimes.EffectivestrategieSinclude: 1) OpcodeCaching, die storesCompiledPhpScriptsinmemorytoskipcompilation;


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Dreamweaver Mac
Visuelle Webentwicklungstools

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools
