1. Modèle
-
Architecture MVC
Avant de développer une fonction, le backend doit écrire php + SQL dans le contrôleur (C), et le front-end doit écrire html + css + js dans la page (V), qui forme l'architecture VC.
Cependant, il s'avère que la même logique de données (SQL) peut être utilisée dans différentes fonctions, de sorte que la logique de données (SQL) peut être proposée séparément comme couche de modèle (M) et que plusieurs logiques métier (php) peuvent être réutilisées.
(https://www.optbbs.com/forum.php?mod=viewthread&tid=12613221)
2. Le rôle du modèle
2.1 Vérification et filtrage pratiques des données
Lors du développement d'applications, telles que la soumission de formulaires, il est souvent nécessaire de vérifier et de filtrer les données. Le modèle de thinkphp6 prend en charge la vérification et le filtrage des données, ce qui peut aider les développeurs à éviter de nombreux problèmes de traitement des données.
2.2 Faciliter la réutilisation et la maintenance du code
Dans de nombreux scénarios, différentes fonctions doivent implémenter la même logique métier. À l'aide de modèles, les développeurs peuvent implémenter la même logique métier en un seul endroit, améliorant ainsi la réutilisabilité et la maintenabilité du code.
2. La méthode de définition dans le fichier modèle
Remarque : N'a pas le même nom que la méthode thinkphp
1. Le nom du modèle
Supposons qu'il existe une table nommée test, le nom du modèle est Test
A un modèle correspond un tableau de données, règle : cas chameau
2. Ajoutez un nouveau fichier de modèle Test.php
Étape 1 : Créez un répertoire dans le projet de test, nom du répertoire : model
Étape 2 : Créez un fichier Test.php dans le modèle
Étape 3 : Introduisez think\Model dans le fichier Test.php
Étape 4 : Le nom de la classe dans le fichier Test.php est également Test
Trois, augmenter
-
fichier modèle
Par exemple, ajoutez un utilisateur
public function doAddUser(){
// 返回新增的对象
$user = Test::create([
'name' => 'shi',
'age' => 26
]);
// 自增的id
echo $user->id;
return $user;
}
2. Appelez le modèle dans le contrôleur
Créez un nouveau fichier de contrôleur dans test\controller, ModelTest.php
Introduisez le fichier modèle app\test\model\Test dans ModelTest.php
public function addUser(){
$Test = new Test();
$result = $Test->doAddUser();
print($result);
}
3. courir
Quatre, vérifie
-
fichier modèle
Par exemple, pour rechercher des utilisateurs âgés de plus de 18 ans
public function doGetUser(){
# 返回结果集
$users = Test::where('age','>=',18)->select();
return $users;
}
2. Fichier du contrôleur
public function getUser(){
$Test = new Test();
$results = $Test->doGetUser();
print($results);
}
3. courir
Cinq, change
-
fichier modèle
Par exemple, modifiez l'âge des utilisateurs de plus de 18 ans à 40 ans
public function doUpdateUser(){
$user = Test::where('name', 'shi')
->where('age', '>=', 18)
->find();
print($user);
$user->age = 40;
// 返回影响的记录数
$result = $user->save();
print($user);
return $result;
}
2. Fichier du contrôleur
public function updateUser(){
$Test = new Test();
$results = $Test->doUpdateUser();
print($results);
}
3. courir
Remarque : Si vous souhaitez modifier le champ de nom, la modification échoue car elle entre en conflit avec le nom de l'attribut dans « think\Model ». Lors de la création d'une table, faites attention aux champs et essayez d'éviter d'utiliser les attributs dans "think\Model".
https://blog.csdn.net/u013288190/article/details/132643809
Six, supprime
-
fichier modèle
Par exemple, supprimez tous les utilisateurs dont le nom est shi
public function doDeleteUser(){
# 删除方法,返回删除的个数
$delete = Test::where('name', 'shi')->delete();
return $delete;
}
2. Fichier du contrôleur
public function deleteUser(){
$Test = new Test();
$result = $Test->doDeleteUser();
print($result);
}
3. courir
Sept, la capacité du modèle
1. La bibliothèque Db peut également être utilisée dans le modèle
comme
Db::name('user')->where('id','>',10)->select();
Si elle est transformée en opération modèle, elle devient
User::where('id','>',10)->select();
2. En plus de la réutilisation du code, le modèle fournit des fonctions telles que des getters, des modificateurs, des chercheurs et des événements de modèle.
Par exemple, les scénarios getter incluent :
-
Sortie formatée pour les champs d'heure et de date ;
-
sortie de type collection ou énumération ;
-
sortie du champ d'état numérique ;
-
La sortie du champ combiné ;
Par exemple, l'état stocké dans la base de données est -1, 0, 1 et d'autres nombres, mais la conversion peut être fournie en externe via le modèle.
<?php
namespace app\model;
use think\Model;
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
return $status[$value];
}
}
Veuillez vous référer au tutoriel officiel
https://www.kancloud.cn/manual/thinkphp6_0/1037588
8. Référence :
https://blog.csdn.net/2301_76809965/article/details/130353013
https://blog.51cto.com/u_15067267/4677537
https://www.php.cn/faq/591280.html
https://cloud.tencent.com/developer/article/2138957
https://m.php.cn/faq/511616.html
Modèle ThinkPHP6 | Blog Ouyang Ke
Xiao Shi, camarade de classe en génie logiciel
20230904