Heim PHP-Framework YII Modellattributen in Yii konnten keine Werte zugewiesen werden

Modellattributen in Yii konnten keine Werte zugewiesen werden

Feb 20, 2020 am 11:01 AM
attributes yii

Modellattributen in Yii konnten keine Werte zugewiesen werden

Problem:

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); //在这里跟踪输出的数据正常,跟表单中填写的一致
        $menu->attributes = $_POST['MenuTree']; //对attributes进行赋值
        var_dump($menu->attributes); //输出$menu模型中的attributes,不正常,结果并不是POST接收到的值,而是数据库原有的值
        if($menu->save()){
            Yii::app()->user->setFlash('success',"恭喜您,修改成功,请继续!");
            $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');
}
Nach dem Login kopieren

(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);
    }
}
Nach dem Login kopieren

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...
    );
}
Nach dem Login kopieren

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!

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
4 Wochen 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)

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

Wie verwende ich Attribute zum Verwalten von Codeanmerkungen in PHP8? Wie verwende ich Attribute zum Verwalten von Codeanmerkungen in PHP8? Oct 18, 2023 am 09:48 AM

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?

Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Yii2 vs. Phalcon: Welches Framework eignet sich besser für die Entwicklung von Grafik-Rendering-Anwendungen? Jun 19, 2023 am 08:09 AM

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

Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Symfony vs Yii2: Welches Framework eignet sich besser für die Entwicklung umfangreicher Webanwendungen? Jun 19, 2023 am 10:57 AM

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

Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Datenabfrage im Yii-Framework: Effizienter Zugriff auf Daten Jun 21, 2023 am 11:22 AM

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

Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen? Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen? Oct 18, 2023 am 10:16 AM

Wie verwende ich Attribute, um benutzerdefinierte Anmerkungen zu Klassen in PHP8 hinzuzufügen? Benutzerdefinierte Annotationen sind eine Möglichkeit, einer Klasse oder Methode Metadaten hinzuzufügen, die uns dabei helfen können, zur Laufzeit zusätzliche Informationen zu einer bestimmten Klasse oder Methode zu erhalten und zu verarbeiten. In PHP8 wurde das Konzept der Attribute eingeführt, das uns das einfache Hinzufügen benutzerdefinierter Anmerkungen zu Klassen ermöglicht. In diesem Artikel wird erläutert, wie Sie mithilfe von Attributen benutzerdefinierte Annotationen für Klassen in PHP8 implementieren, und es werden spezifische Codebeispiele bereitgestellt. In PHP8, seitdem

So konvertieren Sie Yii-Objekte in Arrays oder geben sie direkt im JSON-Format aus So konvertieren Sie Yii-Objekte in Arrays oder geben sie direkt im JSON-Format aus Jan 08, 2021 am 10:13 AM

Yii-Framework: In diesem Artikel wird die Methode von Yii zum Konvertieren von Objekten in Arrays oder zur direkten Ausgabe in das JSON-Format vorgestellt. Sie hat einen bestimmten Referenzwert und ich hoffe, dass sie jedem helfen kann.

See all articles