Modellattributen in Yii konnten keine Werte zugewiesen werden
Feb 20, 2020 am 11:01 AMProblem:
Sie k?nnen den Attributen des Modells im Yii-Framework keine Werte direkt zuweisen.
Schauen Sie sich zun?chst den Quellcode an:
$menuId = isset($_GET['mId']) ? $_GET['mId'] : 0; if ($menuId) { $menu = MenuTree::model()->findByPk($menuId); if(isset($_POST['MenuTree'])){ var_dump($menu->attributes); //在這里跟蹤輸出的數(shù)據(jù)正常,跟表單中填寫的一致 $menu->attributes = $_POST['MenuTree']; //對attributes進(jìn)行賦值 var_dump($menu->attributes); //輸出$menu模型中的attributes,不正常,結(jié)果并不是POST接收到的值,而是數(shù)據(jù)庫原有的值 if($menu->save()){ Yii::app()->user->setFlash('success',"恭喜您,修改成功,請繼續(xù)!"); $this->redirect(Yii::app()->createUrl('menu/contentEdit',array('mId'=>$menuId))); }else{ throw new CException("修改失敗!"); } } $this->render("contentEdit", array('menu' => $menu)); } else { throw new CHttpException('404'); }
(Verwandte Artikel-Tutorials empfohlen: yii-Framework)
Das ist die Aktion Code einer Seite. Wenn Sie sich die Kommentare im Code ansehen, k?nnen Sie sehen, dass die POST-Zuweisung nicht akzeptiert wurde. Ich habe versucht, die Funktion setAttributes zu verwenden, und die Ausgabe ist immer noch der Wert des Originals Datenbank, kann aber mit updateByPk betrieben werden. Nachdem ich die setAttributes-Funktion verfolgt habe, habe ich festgestellt, dass die Funktionsdefinition wie folgt lautet:
public function setAttributes($values,$safeOnly=true) { if(!is_array($values)) return; $attributes=array_flip($safeOnly ? $this->getSafeAttributeNames() : $this->attributeNames()); foreach($values as $name=>$value) { if(isset($attributes[$name])) $this->$name=$value; else if($safeOnly) $this->onUnsafeAttribute($name,$value); } }
Bei der Analyse des setAttributes-Funktionscodes k?nnen wir sehen, dass beim Zuweisen von Werten Sicherheitsüberprüfungen durchgeführt werden ??zu Attributen, daher denke ich, dass der Grund darin liegen k?nnte, dass die Regeln des Modells nicht so eingestellt sind, dass sie für die in diesen Formularen ge?nderten Felder nicht sicher sind. Nachdem ich den Grund gefunden habe, liegt die L?sung einfach in den Regeln des Modells Setzen Sie das Attribut des Feldes, das Sie ?ndern m?chten, auf ?sicher“.
public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( // more code... array('field1 , field2 ,field3', 'safe'), //Modify the fields in here // more code... ); }
Weitere Inhalte zum Thema Programmierung finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonModellattributen in Yii konnten keine Werte zugewiesen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Im aktuellen Informationszeitalter sind Big Data, künstliche Intelligenz, Cloud Computing und andere Technologien in den Fokus gro?er Unternehmen gerückt. Unter diesen Technologien hat die Grafikkarten-Rendering-Technologie als leistungsstarke Grafikverarbeitungstechnologie immer mehr Aufmerksamkeit erhalten. Die Grafikkarten-Rendering-Technologie wird h?ufig in der Spieleentwicklung, bei Film- und Fernsehspezialeffekten, im technischen Modellbau und in anderen Bereichen eingesetzt. Für Entwickler ist die Wahl eines Frameworks, das zu ihren Projekten passt, eine sehr wichtige Entscheidung. Unter den aktuellen Sprachen ist PHP eine sehr dynamische Sprache. Einige hervorragende PHP-Frameworks wie Yii2, Ph

Das Yii-Framework ist ein Open-Source-PHP-Webanwendungsframework, das zahlreiche Tools und Komponenten zur Vereinfachung des Prozesses der Webanwendungsentwicklung bereitstellt, wobei die Datenabfrage eine der wichtigen Komponenten ist. Im Yii-Framework k?nnen wir eine SQL-?hnliche Syntax verwenden, um auf die Datenbank zuzugreifen und Daten effizient abzufragen und zu bearbeiten. Der Abfrage-Builder des Yii-Frameworks umfasst haupts?chlich die folgenden Typen: ActiveRecord-Abfrage, QueryBuilder-Abfrage, Befehlsabfrage und Original-SQL-Abfrage

Da die Nachfrage nach Webanwendungen weiter w?chst, haben Entwickler bei der Auswahl von Entwicklungsframeworks immer mehr M?glichkeiten. Symfony und Yii2 sind zwei beliebte PHP-Frameworks. Sie verfügen beide über leistungsstarke Funktionen und Leistung. Welches Framework ist jedoch besser geeignet, wenn es darum geht, umfangreiche Webanwendungen zu entwickeln? Als n?chstes führen wir eine vergleichende Analyse von Symphony und Yii2 durch, um Ihnen zu helfen, eine bessere Wahl zu treffen. Grundlegende übersicht Symphony ist ein Open-Source-Webanwendungs-Framework, das in PHP geschrieben ist und darauf aufbaut

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

Die Hauptunterschiede zwischen Laravel und YII sind Designkonzepte, funktionale Eigenschaften und Nutzungsszenarien. 1. Laravel konzentriert sich auf die Einfachheit und das Vergnügen der Entwicklung und bietet reichhaltige Funktionen wie eloquentorm und handwerkliche Werkzeuge, die für schnelle Entwicklung und Anf?nger geeignet sind. 2.YII betont Leistung und Effizienz, eignet sich für Hochlastanwendungen und bietet effiziente Activerecord- und Cache-Systeme, verfügt jedoch über eine steile Lernkurve.

Wie verwende ich Attribute zum Verwalten von Codeanmerkungen in PHP8? Mit der Ver?ffentlichung von PHP8 wurde eine aufregende neue Funktion eingeführt, n?mlich Attribute. Attribute sind eine Methode zur Codeannotation, die es uns erm?glicht, Metadaten auf strukturierte Weise zu Klassen, Methoden und Attributen hinzuzufügen. In diesem Artikel untersuchen wir, wie man Attribute zum Verwalten von Codeanmerkungen in PHP8 verwendet, und stellen einige spezifische Codebeispiele bereit. 1. Was ist Attribut?

Zu den Schritten zum Containerieren und Bereitstellen von YII -Anwendungen mit Docker geh?ren: 1.. Erstellen Sie eine Dockerfile und definieren Sie den Bildaufbauprozess; 2. Verwenden Sie DockerCompon, um YII -Anwendungen und MySQL -Datenbank zu starten. 3.. Die Bildgr??e und -leistung optimieren. Dies beinhaltet nicht nur spezifische technische Operationen, sondern auch die Arbeitsprinzipien und Best Practices von Dockerfile, um eine effiziente und zuverl?ssige Bereitstellung zu gew?hrleisten.

Mit der rasanten Entwicklung des Internets sind APIs zu einer wichtigen M?glichkeit geworden, Daten zwischen verschiedenen Anwendungen auszutauschen. Daher wird es immer wichtiger, ein API-Framework zu entwickeln, das einfach zu warten, effizient und stabil ist. Bei der Auswahl eines API-Frameworks sind Yii2 und Symfony zwei beliebte Optionen unter Entwicklern. Welches ist also besser für die API-Entwicklung geeignet? In diesem Artikel werden diese beiden Frameworks verglichen und einige Schlussfolgerungen gezogen. 1. Grundlegende Einführung Yii2 und Symfony sind ausgereifte PHP-Frameworks mit entsprechenden Erweiterungen, die zur Entwicklung verwendet werden k?nnen
