Maison > cadre php > YII > Est-il raisonnable pour Yii de placer des opérations de données sur des widgets ?

Est-il raisonnable pour Yii de placer des opérations de données sur des widgets ?

(*-*)浩
Libérer: 2019-12-14 10:10:43
original
1839 Les gens l'ont consulté

Est-il raisonnable pour Yii de placer des opérations de données sur des widgets ?

Certaines personnes choisiront de créer plusieurs mises en page et de changer de mise en page à différents endroits, mais cela ne maximise pas la réutilisabilité du code et n'est pas assez flexible. Il existe un mécanisme très pratique dans Yii pour résoudre ce problème, à savoir un widget, qui est un widget. (Apprentissage recommandé : framework yii)

yii a des widgets intégrés, qui sont placés sous web.widgets et zii.widgets, tels que notre CLinkPager couramment utilisé, vous pouvez jeter un oeil à CMenu.

Pour étendre le widget vous-même, selon l'introduction du manuel, vous devez hériter de CWidget et remplacer la méthode run(). Commençons par étendre le premier widget :

Créez le répertoire de stockage des widgets : créez le répertoire widgets sous application (la valeur par défaut est protégée) pour stocker les classes de widgets, puis créez le répertoire widgets.views pour stocker la vue. fichier du widget.

Créez la classe de widget : créez un fichier nommé TestWidget.php sous application.widgets. Le nom n'est pas trop particulier, assurez-vous de l'unicité, voyez simplement le nom et comprenez la signification. Ajoutez le code suivant à l'intérieur :

class TestWidget extends CWidget
{
    public $datetime = ''; 

    public function run()
    {
        $datetime = empty($this->datetime) ? date('Y-m-d H:i:s') : $this->datetime;
        $this->render('test', array('datetime'=>$datetime));
    }
}
Copier après la connexion

Expliquez ce code : selon les règles, le nom de la classe TestWidget est le même que le nom du fichier TestWidget.php. La classe TestWidget doit hériter de CWidget puis réécrire le run(. ) méthode. Cette méthode sera appelée lorsque le widget sera rendu.

Appelez la méthode $this->render() dans la méthode run() pour restituer la vue de test et transmettez la variable $datetime à la vue (voir le rendu de la vue du contrôleur). Vous pouvez interroger la base de données, effectuer diverses opérations et transmettre les résultats des opérations dans la vue.

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!

Étiquettes associées:
yii
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal