échec de l'attribution de valeurs aux attributs du modèle dans Yii
Feb 20, 2020 am 11:01 AMProblème?:
Vous ne pouvez pas attribuer directement des valeurs aux attributs du modèle dans le framework Yii.
Jetez d'abord un ?il au code source?:
$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']; //對(duì)attributes進(jìn)行賦值 var_dump($menu->attributes); //輸出$menu模型中的attributes,不正常,結(jié)果并不是POST接收到的值,而是數(shù)據(jù)庫原有的值 if($menu->save()){ Yii::app()->user->setFlash('success',"恭喜您,修改成功,請(qǐng)繼續(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'); }
(Tutoriels d'articles connexes recommandés?: framework yii)
Voici l'action code d'une page, en regardant les commentaires dans le code, vous pouvez voir l'erreur qui s'est produite. L'affectation POST n'est pas acceptée. J'ai essayé d'utiliser la fonction setAttributes et elle n'a pas non plus été acceptée. La sortie est toujours la valeur d'origine. base de données, mais elle peut être utilisée avec updateByPk. Après avoir suivi la fonction setAttributes, j'ai trouvé que la définition de la fonction est la suivante?:
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); } }
En analysant le code de la fonction setAttributes, nous pouvons voir que des contr?les de sécurité sont effectués lors de l'attribution de valeurs. aux attributs, donc je pense que la raison peut être que les règles du modèle ne sont pas définies pour être s?res pour les champs modifiés dans ces formulaires. Après avoir trouvé la raison, la solution appara?t simplement dans les règles du modèle. définissez l'attribut du champ que vous souhaitez modifier sur safe.
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... ); }
Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne Introduction à la programmation sur le site Web PHP chinois?!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

à l’ère actuelle de l’information, le big data, l’intelligence artificielle, le cloud computing et d’autres technologies sont devenus au centre des préoccupations des grandes entreprises. Parmi ces technologies, la technologie de rendu des cartes graphiques, en tant que technologie de traitement graphique haute performance, fait l'objet de plus en plus d'attention. La technologie de rendu des cartes graphiques est largement utilisée dans le développement de jeux, les effets spéciaux de films et de télévision, la modélisation technique et d'autres domaines. Pour les développeurs, choisir un framework adapté à leurs projets est une décision très importante. Parmi les langages actuels, PHP est un langage très dynamique. Quelques excellents frameworks PHP comme Yii2, Ph.

Le framework Yii est un framework d'application Web PHP open source qui fournit de nombreux outils et composants pour simplifier le processus de développement d'applications Web, dont la requête de données est l'un des composants importants. Dans le framework Yii, nous pouvons utiliser une syntaxe de type SQL pour accéder à la base de données afin d'interroger et de manipuler les données efficacement. Le générateur de requêtes du framework Yii comprend principalement les types suivants : requête ActiveRecord, requête QueryBuilder, requête de commande et requête SQL originale.

Alors que la demande d'applications Web continue de cro?tre, les développeurs ont de plus en plus de choix dans le choix des frameworks de développement. Symfony et Yii2 sont deux frameworks PHP populaires. Ils ont tous deux des fonctions et des performances puissantes, mais face à la nécessité de développer des applications Web à grande échelle, quel framework est le plus adapté ? Nous procéderons ensuite à une analyse comparative de Symphony et Yii2 pour vous aider à faire un meilleur choix. Présentation de base Symphony est un framework d'application Web open source écrit en PHP et basé sur

Avec le développement continu de la technologie du cloud computing, la sauvegarde des données est devenue quelque chose que chaque entreprise doit faire. Dans ce contexte, il est particulièrement important de développer un système de sauvegarde cloud hautement disponible. Le framework PHP Yii est un framework puissant qui peut aider les développeurs à créer rapidement des applications Web hautes performances. Ce qui suit explique comment utiliser le framework Yii pour développer un système de sauvegarde cloud hautement disponible. Conception du modèle de base de données Dans le framework Yii, le modèle de base de données est une partie très importante. Parce que le système de sauvegarde des données nécessite beaucoup de tables et de relations

Les principales différences entre Laravel et YII sont les concepts de conception, les caractéristiques fonctionnelles et les scénarios d'utilisation. 1.Laravel se concentre sur la simplicité et le plaisir du développement, et offre des fonctions riches telles que Elognentorm et des outils artisanaux, adaptés au développement rapide et aux débutants. 2.YII met l'accent sur les performances et l'efficacité, convient aux applications à haute charge et fournit des systèmes activecord et de cache efficaces, mais a une courbe d'apprentissage abrupte.

Comment utiliser les attributs pour gérer les annotations de code en PHP8 ? Avec la sortie de PHP8, une nouvelle fonctionnalité intéressante a été introduite, à savoir les attributs. Les attributs sont une méthode d'annotation de code qui nous permet d'ajouter des métadonnées aux classes, méthodes et attributs de manière structurée. Dans cet article, nous explorerons comment utiliser les attributs pour gérer les annotations de code dans PHP8 et fournirons quelques exemples de code spécifiques. 1. Qu'est-ce que l'attribut??

Les étapes de conteneris et de déploiement des applications YII à l'aide de Docker incluent: 1. Créez un DockerFile et définissez le processus de création d'images; 2. Utilisez DockerCose pour lancer les applications YII et la base de données MySQL; 3. Optimiser la taille et les performances de l'image. Cela implique non seulement des opérations techniques spécifiques, mais aussi de comprendre les principes de travail et les meilleures pratiques de Dockerfile pour assurer un déploiement efficace et fiable.

Avec le développement rapide d’Internet, les API sont devenues un moyen important d’échange de données entre diverses applications. Par conséquent, il est devenu de plus en plus important de développer un framework API facile à maintenir, efficace et stable. Lors du choix d'un framework API, Yii2 et Symfony sont deux choix populaires parmi les développeurs. Alors, lequel est le plus adapté au développement d’API?? Cet article comparera ces deux cadres et donnera quelques conclusions. 1. Introduction de base Yii2 et Symfony sont des frameworks PHP matures avec les extensions correspondantes qui peuvent être utilisées pour développer
