Requête de vue ThinkPHP
Cet article présente principalement la requête de vue ThinkPHP. Les amis qui en ont besoin peuvent s'y référer
La fonction d'application de requête de vue fournie par ThinkPHP est très puissante. Les utilisateurs peuvent utiliser la fonction de requête de vue pour trier le contenu des champs. plusieurs tables de données doivent être spécifiées et filtrées, organisées en un modèle de vue basé sur ces tables de données, puis des requêtes conjointes multi-tables peuvent être directement effectuées via le modèle, ce qui est très pratique et simple.
Par exemple, dans le projet, nous définissons trois tables :
table de base utilisateur utilisateur,
table de détails utilisateur user_info,
table de classification département département
Nous devons maintenant obtenir certaines informations utilisateur.
Ces informations doivent inclure le nom du compte de l'utilisateur, les informations associées et le nom du département
À ce stade, nous pouvons utiliser la requête de vue pour les traiter.
Ce qui suit est un exemple pour illustrer :
1. Construisez un nouveau projet et effectuez les configurations pertinentes (se référer au tutoriel précédent, omis ici)
Créez une base de données tpview, et ajoutez ceci Trois tableaux
(1) Tableau des utilisateurs
CREATE TABLE `think_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID编号', `name` varchar(20) NOT NULL COMMENT '帐户', `password` varchar(32) NOT NULL COMMENT '密码', `dept_id` smallint(6) unsigned NOT NULL, `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '开放状态', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='会员表' AUTO_INCREMENT=2 ; INSERT INTO `think_user` (`id`, `name`, `password`, `dept_id`, `status`) VALUES (1, 'zzguo28', '123456', 2, 1);
(2) Informations utilisateur
CREATE TABLE `think_user_info` ( `user_id` int(11) NOT NULL COMMENT '用户id', `nick_name` varchar(30) NOT NULL COMMENT '用户昵称', `email` varchar(100) NOT NULL COMMENT '邮箱地址', `address` varchar(100) NOT NULL COMMENT '详细地址', `gender` tinyint(1) NOT NULL DEFAULT '0' COMMENT '性别', `mobile` varchar(100) NOT NULL COMMENT '手机号码', `telephone` varchar(100) NOT NULL COMMENT '电话号码', KEY `user_id` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户信息表'; INSERT INTO `think_user_info` (`user_id`, `nick_name`, `email`, `address`, `gender`, `mobile`, `telephone`) VALUES (1, '国', 'zzguo28@163.com', 'TP路think街1.6号', 1, '12345678901', '123456');
(3) Tableau de classification des départements
CREATE TABLE `think_dept` ( `id` smallint(3) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `think_dept` (`id`, `name`) VALUES (1, '开发部'), (2, '销售部'), (3, '财务部');
3 .Créez le modèle de base Model de ces trois tables sous project/Lib/Model
Cet exemple n'implique pas de vérification ni d'autres fonctions, vous pouvez donc simplement définir le test, tel que
<?php class UserModel extends Model { } ?>
En fait, le modèle de vue La table de données correspondante n'a pas nécessairement un modèle de base correspondant, mais il est recommandé de le créer afin que les tables simples et les vues puissent être exploitées.
4. Créez un modèle de vue. Le code est le suivant. Des annotations détaillées peuvent être trouvées ci-dessous :
(Remarque : le dernier svn a ajouté la fonction d'extension dynamique du modèle. À utiliser. la nouvelle version, vous devez remplacer l'attribut protégé par un attribut public. , il est recommandé d'utiliser la fonction d'expansion dynamique pour utiliser la requête de vue au lieu de la méthode d'héritage dans ce tutoriel )
<?php import('ViewModel'); class UserViewModel extends ViewModel{ protected $viewFields = array( 'User' =>array('id','name','_as'=>'u','_type'=>'left'), 'UserInfo' =>array('email','mobile','_as'=>'ui','_on'=>'ui.user_id=u.id'), 'Dept' =>array('name'=>'dept','_on'=>'u.dept_id=Dept.id'), ); } ?>
. Le code ci-dessus est expliqué comme suit :
Dans la deuxième ligne de code, puisque la requête de vue a été séparée de la classe Model d'origine depuis la version 1.6 de TP, la classe de modèle de vue doit être introduite ici en utilisant l'importation méthode.
Dans la troisième ligne de code, le nom du modèle est défini comme UserViewModel. Le nom du modèle de vue avant Model est arbitraire, juste pour le distinguer des autres modèles. Habituellement, nous le nommerons ainsi. manière comme xxxViewModel . Et doit hériter de ViewModel. (ThinkPHP version 1.6 n'a plus besoin de définir l'attribut viewModel du modèle sur true, tant qu'il hérite de ViewModel)
L'attribut $viewFields de la ligne 4 du code représente les champs contenus dans le modèle de vue. Chaque élément définit chaque table de données ou champs requis par le modèle.
Le format est
protected $viewFields = array( '表名'=>array('所需字段','_as'=>'别名定义','_on'=>'筛选条件','_type'=>'指定join类型,支持right,inner,left三种'), );
Remarquez le 'name'=>'dept' dans la 7ème ligne de code, car il y a déjà un champ name dans le modèle User, nous utilisons donc cette méthode pour Le champ de nom du modèle Dept est mappé au champ dept. S'il existe plusieurs champs, ils peuvent être ajoutés de la même manière.
Une fois la définition terminée, nous la testons en Action. Le code est le suivant
<?php class IndexAction extends Action{ public function index(){ $dao = D('UserView'); $where['u.id'] = 1; dump($dao->where($where)->find()); dump($dao->getLastSql()); } } ?>
Accédez ensuite à l'opération et vous pouvez voir que nous avons obtenu avec succès le contenu de la requête requis :
array(1) { [0] => array(5) { ["id"] => string(1) "1" ["name"] => string(7) "zzguo28" ["email"] => string(17) "zzguo28@163.com" ["mobile"] => string(11) "12345678901" ["dept"] => string(9) "销售部" } }
Et vous pouvez voir que le SQL utilisé est le suivant
"SELECT u.id AS id,u.name AS name,ui.email AS email,ui.mobile AS mobile,Dept.name AS dept FROM think_user u LEFT JOIN think_user_info ui ON ui.user_id=u.id JOIN think_dept Dept ON u.dept_id=Dept.id WHERE ( u.id = 1 ) LIMIT 1 "
Le modèle de requête du modèle de vue n'est pas très différent de la table unique ordinaire, et nous peut utiliser diverses opérations cohérentes que nous connaissons, comme l'ordre, la limite, etc.
Recommandations associées :
Extensions de comportement et plug-ins dans ThinkPHP
Explication détaillée de l'exemple de données de mise à jour de l'implémentation de ThinkPHP (démo )
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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à 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)

Sujets chauds

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Comparaison des performances des frameworks Laravel et ThinkPHP : ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

"Suggestions de développement : comment utiliser le framework ThinkPHP pour implémenter des tâches asynchrones" Avec le développement rapide de la technologie Internet, les applications Web ont des exigences de plus en plus élevées pour gérer un grand nombre de requêtes simultanées et une logique métier complexe. Afin d'améliorer les performances du système et l'expérience utilisateur, les développeurs envisagent souvent d'utiliser des tâches asynchrones pour effectuer certaines opérations chronophages, telles que l'envoi d'e-mails, le traitement des téléchargements de fichiers, la génération de rapports, etc. Dans le domaine de PHP, le framework ThinkPHP, en tant que framework de développement populaire, offre des moyens pratiques d'implémenter des tâches asynchrones.

Étapes d'installation de ThinkPHP : Préparez les environnements PHP, Composer et MySQL. Créez des projets à l'aide de Composer. Installez le framework ThinkPHP et ses dépendances. Configurez la connexion à la base de données. Générez le code de l'application. Lancez l'application et visitez http://localhost:8000.

ThinkPHP est un framework PHP hautes performances présentant des avantages tels que le mécanisme de mise en cache, l'optimisation du code, le traitement parallèle et l'optimisation des bases de données. Les tests de performances officiels montrent qu'il peut gérer plus de 10 000 requêtes par seconde et qu'il est largement utilisé dans les sites Web à grande échelle et les systèmes d'entreprise tels que JD.com et Ctrip dans les applications réelles.

Suggestions de développement : Comment utiliser le framework ThinkPHP pour le développement d'API Avec le développement continu d'Internet, l'importance de l'API (Application Programming Interface) est devenue de plus en plus importante. L'API est un pont de communication entre différentes applications. Elle peut réaliser le partage de données, l'appel de fonctions et d'autres opérations, et offre aux développeurs une méthode de développement relativement simple et rapide. En tant qu'excellent framework de développement PHP, le framework ThinkPHP est efficace, évolutif et facile à utiliser.
