suchen
HeimPHP-FrameworkYIIModellattributen in Yii konnten keine Werte zugewiesen werden

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');
}

(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!

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
Yii: Eine Einführung in das Hochleistungs-PHP-FrameworkYii: Eine Einführung in das Hochleistungs-PHP-FrameworkApr 18, 2025 am 12:03 AM

YII ist ein Hochleistungs-PHP-Framework, der für die schnelle Entwicklung von Webanwendungen geeignet ist. Zu den Kernkonzepten gehören: Komponentenbasiertes Design: YII bietet reichhaltige Komponenten und Erweiterungen, unterstützt die automatische Codegenerierung und verbessert die Entwicklungseffizienz. MVC -Architektur: Übernimmt das Designkonzept der "Konvention ist besser als Konfiguration", um die betriebliche Effizienz zu verbessern. Cache- und Datenbankunterstützung: Bietet leistungsstarke Caching -Mechanismen und Datenbankoperationen, um die Anwendungsleistung zu optimieren.

Die fortgesetzte Verwendung von Yii: Untersuchung des aktuellen StatusDie fortgesetzte Verwendung von Yii: Untersuchung des aktuellen StatusApr 17, 2025 am 12:09 AM

YII ist immer noch wettbewerbsfähig in der modernen Entwicklung. 1) hohe Leistung: Übernimmt faule Lade- und Caching -Mechanismen. 2) Sicherheit: Eingebautes CSRF- und SQL-Injektionsschutz. 3) Erweiterbarkeit: Komponentenbasiertes Design ist einfach zu erweitern und anzupassen.

YIIs Community: Unterstützung und RessourcenYIIs Community: Unterstützung und RessourcenApr 16, 2025 am 12:04 AM

Die YII -Community bietet reichhaltige Unterstützung und Ressourcen. 1. Besuchen Sie die offizielle Website und Github, um die Dokumentation und den Code zu erhalten. 2. Verwenden Sie offizielle Foren und Stackoverflow, um technische Probleme zu lösen. 3. Melden Sie Fehler und machen Sie Vorschläge über Githubissues. 4. Verwenden Sie Dokumente und Tutorials, um das YII -Framework zu lernen.

YII: Ein starker Rahmen für die WebentwicklungYII: Ein starker Rahmen für die WebentwicklungApr 15, 2025 am 12:09 AM

YII ist ein Hochleistungs-PHP-Framework für schnelle Entwicklung und effiziente Codegenerierung. Zu den Kernmerkmalen gehören: MVC -Architektur: YII nimmt die MVC -Architektur an, um Entwicklern dabei zu helfen, die Anwendungslogik zu trennen und den Code zu erleichtern, um die Wartung und Erweiterung zu erleichtern. Komponentierung und Codegenerierung: Durch Komponentierungen und Codeerzeugung reduziert YII die sich wiederholende Arbeit von Entwicklern und verbessert die Entwicklungseffizienz. Leistungsoptimierung: YII verwendet die Latenzbelastungs- und Caching -Technologien, um einen effizienten Betrieb unter hohen Lasten zu gewährleisten, und bietet leistungsstarke ORM -Funktionen, um Datenbankvorgänge zu vereinfachen.

Yii: Der schnelle EntwicklungsrahmenYii: Der schnelle EntwicklungsrahmenApr 14, 2025 am 12:09 AM

YII ist ein Hochleistungsrahmen, das auf PHP basiert und für die schnelle Entwicklung von Webanwendungen geeignet ist. 1) Es werden MVC -Architektur und Komponentendesign verwendet, um den Entwicklungsprozess zu vereinfachen. 2) YII liefert reichhaltige Funktionen wie ActiveCord, Rastfulapi usw., die eine hohe Parallelität und Expansion unterstützen. 3) Die Verwendung von GII -Tools kann schnell den CRUD -Code generieren und die Entwicklungseffizienz verbessern. 4) Während des Debuggens können Sie Konfigurationsdateien überprüfen, Debugging -Tools verwenden und Protokolle anzeigen. 5) Vorschläge zur Leistungsoptimierung umfassen die Verwendung von Cache, die Optimierung von Datenbankabfragen und die Wartung der Code -Lesbarkeit.

Der aktuelle Zustand von Yii: Ein Blick auf seine PopularitätDer aktuelle Zustand von Yii: Ein Blick auf seine PopularitätApr 13, 2025 am 12:19 AM

YiiremainSpopularButislessFavoredThanLaravel, Withabout14KgithuBStars.itexcelSinperformanceAndactiveCord, ButhasasterLearningCurveAnDasAlleRecosystem.itssidealfordeViornitizefficiency.System.

YII: Schlüsselmerkmale und Vorteile erläutertYII: Schlüsselmerkmale und Vorteile erläutertApr 12, 2025 am 12:15 AM

YII ist ein Hochleistungs-PHP-Framework, das in seiner komponentierten Architektur, leistungsstarker ORM und hervorragender Sicherheit einzigartig ist. 1. Mit der Komponenten-basierten Architektur können Entwickler Funktionen flexibel zusammenstellen. 2. leistungsstarke ORM vereinfacht die Datenoperation. 3.. Integrierte mehrere Sicherheitsfunktionen, um die Sicherheit der Anwendungen zu gewährleisten.

Yii's Architektur: MVC und mehrYii's Architektur: MVC und mehrApr 11, 2025 pm 02:41 PM

YII Framework nimmt eine MVC -Architektur an und verbessert ihre Flexibilität und Skalierbarkeit durch Komponenten, Module usw. 1) Der MVC -Modus unterteilt die Anwendungslogik in Modell, Ansicht und Controller. 2) Die MVC -Implementierung von YII verwendet die Verarbeitung der Aktionsverfeinerung. 3) YII unterstützt die modulare Entwicklung und verbessert die Organisation und das Management der Code. 4) Verwenden Sie die Optimierung von Cache und Datenbankabfrage, um die Leistung zu verbessern.

See all articles

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)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

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.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

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.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor