Démarrer avec thinkphp6 (5) -- quel est le modèle et comment l'utiliser

1. Modèle

  1. 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.

image

(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

image

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

image

Trois, augmenter

  1. 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);    }

image

3. courir

image

Quatre, vérifie

  1. 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

image

Cinq, change

  1. 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

  1. 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

image

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

Je suppose que tu aimes

Origine blog.csdn.net/u013288190/article/details/132679190
conseillé
Classement