Fonctionnement de la chaîne de base de données ThinkPHP6.0



Opération de chaîne de base de données ThinkPHP6

  • La méthode d'opération en chaîne fournie par la base de données peut améliorer efficacement la clarté du code et l'efficacité du développement de l'accès aux données, et prend en charge toutes les CURDopérations

  • avec * La représentation du l'identifiant prend en charge plusieurs appels

opération cohérente Fonction Types de paramètres pris en charge
où* est utilisé pour la requête AND chaîne, tableau et objet
table est utilisée pour définir le nom de la table de données à exploiter String et array
name est utilisée pour définir le nom de la table de données à exploiter String
field* Utilisé pour définir les champs à interroger (prend en charge l'exclusion de champs) Chaîne et tableau
ordre*Utilisé pour trier les résultats Chaîne et tableau
limite Utilisé pour limiter la requête résultats QuantitéChaînes et nombres
page utilisée pour la pagination des requêtes (sera convertie pour limiter en interne)Chaînes et nombres

1. Requête d'expression

  • L'expression est la condition de l'instruction SQL

  • L'expression n'est pas sensible à la casse

  • L'expression est écrite dans où

ExpressionSignification Requête méthode
= est égal à
<> n'est pas égal à
> est supérieur à
> ;= Supérieur ou égal à
<inférieur à
<=inférieur ou égal à
[PAS] COMME Requête flouewhereLike/whereNotLike
[NOT] BETWEEN(not) requête d'intervallewhereBetween/whereNotBetween
[NOT] IN(not) IN requête oùDans/oùPasDans
[NOT] NULL Champ de requête Si (non) NULLwhereNull/whereNotNull

whereQuery

  • where est la méthode la plus couramment utilisée parmi les méthodes d'opération en chaîne. Elle peut effectuer des opérations de requête conditionnelle, notamment une requête ordinaire, une requête d'expression, une requête rapide, une requête par intervalle et une requête combinée

# Égal à (=)

$select = Db::table('shop_goods')->where('id','=','1')->select();

print_r($select- > toArray());


# Différent de (<>)

$select = Db::table('shop_goods')->where('id','<>' , '2')->select();

print_r($select->toArray());


# supérieur à (>)

$select = Db::table('shop_goods' )->where('id','>','3')->select();

print_r($select->toArray());


# Supérieur ou égal à (> ;=)

$select = Db::table('shop_goods')->where('id','>=','4')->select();

print_r( $select- >toArray());


# Moins de (<)

$select = Db::table('shop_goods')->where('id','<', '5') ->select();

print_r($select->toArray());


# Inférieur ou égal à (<=)

$select = Db::table ('shop_goods')-> ;where('id','<=','6')->select();

print_r($select->toArray());


# Plus où

$select + ;-& Gt; select ();

Print_r ($ select-& gt; toarray ()); );

print_r($select->toArray());

# PAS LIKE


$select = Db:: table('shop_goods')->where('title','pas comme ','%dress%')->select();

print_r($select->toArray());

# BETWEEN


$select = Db::table('shop_goods') ->where('id','between','6,10')->select();

print_r($select ->toArray());

# PAS ENTRE


$select = Db::table('shop_goods')->where('id','not between',[6,10]) ->select();

print_r($select->toArray( ))( );

print_r($select->toArray());


# PAS DANS

$select = Db::table('shop_goods')->where('id','not in',[4,7,10])->select();

print_r($select-> ;toArray());

2. Table de données

1, table et nom

# Doit compléter le nom de la base de données

$select = Db::table('shop_goods')->where('id' ,'10')->select();

print_r($select->toArray());

# La base de données n'a pas de préfixe défini

$select = Db::name('shop_goods')- >where('id','11')->select();

print_r($select->toArray());

# Préfixe de paramètre de base de données, pas d'accès au préfixe

$select = Db : :name ('list')->where('id','12')->select();

print_r($select->toArray());

2. Préfixe de la base de données

Configuration de la base de données database.phpdatabase.php

return [

    'connections'     => [

        'mysql' => [

            // 数据库表前缀

            'prefix'  => Env::get('database.prefix', 'shop_'),

        ]

    ]

];

三、返回值

1、field 

    return [
  •                                                                                           prefix' => Env: :get('database.prefix', 'shop_'),

  • ]
  • ]

  • ];

3. Valeur de retour

1. field

field méthode main Il est utilisé pour identifier les champs à retourner ou à exploiter, qui peuvent être utilisés pour les opérations de requête et d'écriture. Toutes les requêtes. les méthodes peuvent utiliser la méthode field. Shop_goods')

-& gt; Field ('Titre, Prix, Remise comme d')

-& gt; où ('Status', 1) -& gt; - & gt ;toArray());


# Array

$select = Db::table('shop_goods')

                                                                                                                            'prix',

                                                    remise'=>'d'

                                                                  -  

# Ajouter, seuls ces champs peuvent être ajoutés

# Plusieurs champs

$data = [

'titre' => 'Nouveau produit',


'prix' => remise' => 8,

'add_time' => 1576080000

];

$insert = Db::table('shop_goods')

                                                                                                                                                                                                 - > print_r($insert);

# Interrogez tous les champs, plus rapidement

$select = Db::table('shop_goods')

- ->field(true)

// ->field('*')


- ->where('status',1)

- ->select();

print_r($ select->toArray());

2. withoutField

  • la méthodewithoutField exclut les champs de la table de données

    Db::table('shop_goods')->withoutField('id')->select();

    3. fieldRaw

    • la méthode fieldRaw utilise directement la fonction mysql

withoutField

  • withoutField 方法作用 排除数据表中的字段

Db::table('shop_goods')->fieldRaw('id,sum(price)')->select();

3、fieldRaw

  • fieldRaw 方法直接使用mysql函数

$select = Db::table('shop_goods')->select();
echo Db::getLastSql();

四、排序

1、order 方法用于对操作的结果排序或者优先级限制

  • 默认正序

  • asc 正序

  • desc 倒序

$select = Db::table('shop_goods')

            ->field('title,price,id')

            ->where('status',1)

            ->order('price','DESC')

            ->order('id','DESC')

            ->select();

print_r($select->toArray());

2、orderRaw 方法中使用mysql函数

$select = Db::table('shop_goods')

            ->field('title,price,id')

            ->where('status',1)

            ->orderRaw("field(title,'price','discount','stock')")

            ->select();

print_r($select->toArray());

五、分页

  • limit

    $select = Db::table('shop_goods')->fetchSql()->select();
    echo $select;

    < span style="font-size: 16px;"> 4. Tri

  • 1 La méthode order est utilisée pour trier ou hiérarchiser les résultats de l'opération
<. ul style="list-style-type: disc;" >
  • Ordre avant par défaut

  • ordre avant asc

  • ordre inverse desc

    🎜🎜🎜$select = Db:: table('shop_goods')🎜🎜 - ->field('title,price,id')🎜🎜 - ->where('status',1)🎜🎜 - ->order('price','DESC ')🎜🎜 - ->order('id','DESC') ; -& Gt; select (); 🎜🎜Print_r ($ select -& gt; toarray ()); La méthode Orderraw utilise la fonction mysql 🎜🎜🎜 $ select = db :: table ('shop_goods') 🎜🎜 -& gt; Champ ('titre, prix, identifiant') 🎜🎜 -& gt; ', 1) 🎜🎜 -& gt; orderRaw ("champ (titre, 'prix' 'remise', 'stock')")🎜🎜 ->select();🎜🎜print_r($select->toArray( ));🎜🎜

    5. Paging

    • 🎜La méthode limit est principalement utilisée pour spécifier le numéro. de requêtes et d'opérations🎜🎜🎜🎜🎜$select = Db::table('shop_goods')🎜 🎜                                                                                                                                                                                                                          .; -& Gt; limite (3)

      -& gt; select ();

      Print_r ($ select -& gt; toarray ()); )

      ->field('title,price,id')


      - ->where('status',1)

      - ->order('price','DESC')

      - - >limit(0, ( 'shop_goods')

      - ->field('title,price,id')

      - ->where('status',1)

      - ->order(' price','DESC')

      - >page(1,5)

      - ->select();

  • print_r($select->toArray());
    • 6. Requête d'agrégationpage

    Méthode d'agrégation S'il n'y a pas de données, la valeur par défaut est 0, les requêtes d'agrégation peuvent être mises en correspondance avec d'autres conditions de requête

    méthode

    fonction

    compte

    compter la quantité, le paramètre est le nom du champ à compter (facultatif)

      max
    • Récupère la valeur maximale, le paramètre est le nom du champ à compter (obligatoire)

    min Récupère la valeur minimale, le paramètre est le champ nom à compter (obligatoire) avg Obtenir la valeur moyenne, le paramètre est à compter Le nom du champ (obligatoire) sum obtient le nombre total, le paramètre est le nom du champ à être compté (obligatoire)

    // Comptez la quantité, le paramètre est le nom du champ à compter (facultatif)

    $select = Db::table('shop_goods')->count();

    print_r($select);


    // Récupère la valeur maximale, le paramètre est le nom du champ à compter (obligatoire)

    $select = Db::table('shop_goods')->max('id');

    print_r ($select);


    // Récupère la valeur minimale, le paramètre est le nom du champ à compter (obligatoire)

    $select = Db::table('shop_goods')->min('id ');

    print_r($ select);


    // Récupère la valeur moyenne, le paramètre est le nom du champ à compter (obligatoire)

    $select = Db::table('shop_goods')- >avg('id');

    print_r($select);


    // Récupère le nombre total, le paramètre est le nom du champ à compter (obligatoire)

    $select = Db::table ('shop_goods')->sum('id');

    print_r($select);

    7. Exemples de recherche et de tri

    code du contrôleur

    index de fonction publique(){

    $title = 'centre commercial';

    $login = 'Ouyang Ke';

    # Menu de gauche

    $menu = Db::table('shop_menu')->where('fid',0)->select() ;

    $left = $menu->toArray() ;

    foreach($left as &$left_v){

    $left_v['lists'] = Db::table('shop_menu')->where ('fid',$left_v['id'])- >select();

    }

    # Liste de droite

    $param = Request::param();

    if(isset($param[' statut']) && $param['status'] = = 1){

                        $where['status'] = 1; 'status'] = 2;

    }else{

                                                                                                      en utilisant   en utilisant   en utilisant       en utilisant         en utilisant en utilisant '        grâce à l'utilisation via l'utilisation via l'utilisation '       via l'utilisation ' via ‐   ‐ ‐ ‐                                                   using ' ‐ ‐ ‐ ‐ ‐ ‐ $where = true;               

                -> ;order('add_time DESC')

                                                                                                                                                                         as &$right_v){

    $right_v['cat'] = Db::table('shop_cat')->where('id',$right_v['cat'])->value('name')

    } la vue :: attribuer ([

    'titre' = & gt; $ table,

    'login' = & gt; $ login,

    ,

            'gauche' => $gauche,

            'droite' => $droit,

            'statut' => isset($param['statut']) ? $param['status'] : null

        ]);

        return View::fetch();

    }

    view代码

    <form class="layui-form" method="post" >

        <div class="layui-form-item" style="margin-top:10px;">

            <div class="layui-input-inline">

                <sélectionner un nom ="status">

                    <option value="0" {if $status==0}selected{/if}>全部</option>

                    <option value="1" {if $ status==1}selected{/if}>开启</option>

                    <option value="2" {if $status==2}selected{/if}>关闭</option>

                </select>

            </div>

            <button class="layui-btn layui-btn-primary"><i class="layui-icon">< /i>搜索</button>

        </div>

    </form>

    8. Exemple de pagination

    code du contrôleur

    public function index(){

    $title = 'mall';

    $login = 'Ouyang Ke';

    # Menu de gauche

    $menu = Db::table('shop_menu')->where('fid',0)->select();

    $left = $menu->toArray();

    foreach($left as &$left_v){

    $left_v['lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])-> ();

    }

    # Liste de droite

    $param = Request::param();

    if(isset($param['status']) && $param['status'] == 1 ){

                                                                                  utiliser utiliser utiliser utiliser                                                                                  '] = 2;

    }else{

              $where = true;

        }

       $p = isset($param['p']) ? $param['p'] : 1;

                Statistiques totales

    $count = Db::table('shop_goods')->where($where)->count();

    $list = Db::table('shop_goods')

    - -> où ($ quand)

    -& gt; commande ('add_time desc')

    -& gt; commande ('ID desc')

    -& gt;

    & gt; select ();); Select ();

    $right = $list->toArray();

    foreach($right as &$right_v){

    $right_v['cat'] = Db::table('shop_cat')->where( 'id',$right_v['cat'])-> value('name'); >                                        en utilisant en utilisant en utilisant en utilisant en utilisant             dehors dehors à travers ' s ' ‐ ‐ ‐ ‐‐‐ 'left' =>               'status' => isset($param['status']) ? ] : 0

                                           

    voir le code

    <div class="layui-box layui-laypage layui-laypage-default">

    <a href="/index.php/Index/index?p={$p-1}&status={$status}" class="layui-laypage-prev {if $p<=1}layui-disabled {/if}">Page précédente</a>

    {for start="0" end="$count"}

                                                                                  ="layui-laypage-curr">

                                                                                                                                                                                                                                                                                </span>

    }</a>

                                                                                          class="layui-laypage-next {if $p>=$count}layui-disabled{/if}">Page suivante</a>

    </div>

    9. Paging de modèle

    paginate a une implémentation de pagination intégrée, et il est très simple d'ajouter une fonction de sortie de pagination aux données

    render Get la page qui tourne le code html

    total Obtenez la quantité totale

    • code du contrôleurpaginate 内置了分页实现,要给数据添加分页输出功能变得非常简单

    • render 获取翻页html代码

    • total

    • $select = Db::table('shop_goods')->paginate(10);

    print_r($select);echo '< hr>';

    foreach($select as $v){

      print_r($v);echo '<hr>';

    }

    print_r( $select->render());echo ' <hr>';

    print_r('Total:'.$select->total());echo '<hr>';

    View:: assign([

    'select' => $ select

    ]);

    return View::fetch();

    afficher le code

    <div>{$select|raw}</div>

    css代码

    .pagination {

        display: inline-block;

        padding-left: 0;

        margin: 20px 0;

        border-radius: 4px;

    }

    .pagination > li {

        display: inline;

    }

    .pagination > li> a,

    .pagination > li> span {

        position : relative;

        float : gauche;

        padding : 6px 12px;

        margin-left : -1px;

        line-height : 1.42857143 ;

        couleur : #337ab7 ;

       texte-décoration : aucun;

       couleur d'arrière-plan : #fff;

        bordure : 1px solide #ddd;

    }

    .pagination > li:premier enfant > a,

    .pagination > li:premier enfant > span {

        margin-left : 0;

        border-top-left-radius : 4px;

        border-bottom-left-radius : 4px;

    }

    .pagination > li:dernier enfant > a,

    .pagination > li:dernier enfant > span {

        border-top-right-radius : 4px;

        border-bottom-right-radius : 4px;

    }

    .pagination > li> a: survol,

    .pagination > li> span: survol,

    .pagination > li> a:focus,

    .pagination > li> span:focus {

        z-index : 2;

        color: #23527c;

        background-color: #eee;

        border-color: #ddd;

    }

    .pagination > .actif > a,

    .pagination > .actif > span,

    .pagination > .actif > a: survol,

    .pagination > .actif > span: survol,

    .pagination > .actif > a:focus,

    .pagination > .actif > span:focus {

        z-index: 3;

        color: #fff;

        curseur : par défaut;

       couleur d'arrière-plan : #337ab7;

        couleur de la bordure : #337ab7;

    }

    .pagination > .désactivé > span,

    .pagination > .désactivé > span: survol,

    .pagination > .désactivé > span:focus,

    .pagination > .désactivé > a,

    .pagination > .désactivé > a: survol,

    .pagination > .désactivé > a:focus {

        couleur : #777;

        curseur : non autorisé ;

        couleur de fond : #fff;

        couleur de la bordure : #ddd;

    }

    10. Exemple de pagination de modèle

    ParamètresDescription
    list_rows Quantité par page
    page Page actuelle
    cheminchemin d'url
    requête paramètres supplémentaires d'url
    fragment ancre d'url
    var_page variable de pagination

    code du contrôleur

    index de fonction publique(){

    $title = 'Mall';

    $login = 'Ouyang Ke';

    # Menu de gauche

    $menu = Db::table('shop_menu' ) ->where('fid',0)->select();

    $left = $menu->toArray();

    foreach($left as &$left_v){

    $left_v[ ' lists'] = Db::table('shop_menu')->where('fid',$left_v['id'])->select();

    }

    # Liste de droite

    $ param = Request::param();

    if(isset($param['status']) && $param['status'] == 1){

    $where['status'] = 1;

    }else if(isset($param['status']) && $param['status'] == 2){

              $where['status'] = 2;

        }else{

                      $where = true ;

    }

    $p = isset($param['p']) ? $param['p'] : 1;

    # thinkphp est livré avec la pagination

    $list = Db::table('shop_goods' )

                                                                                                                                                                    (                                                     ;                                                                                   

    $right_v['cat'] = Db::table('shop_cat')-&g t;where('id',$right_v['cat'])->value( 'nom');

    }

    Vue :: attribuer ([

    'titre' = & gt; $ table,

    'login' = & gt; $ login,

    'gauche' = & gt; $ gauche;

    'droite' = & gt; $ droite;

    'liste' => ();

    }

    afficher le code

    <div>{$paginate|raw}</div>

    11. Débogage SQL

    • getLastSql Sortie de la dernière instruction SQL exécutéegetLastSql 输出上次执行的sql语句

    • getLastSql 方法只能获取最后执行的 SQL 记录

    // 启动事务
    Db::startTrans();
    $data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];
    $insert = Db::table('shop_goods')->insert($data);
    if(empty($insert)){
        // 回滚事务
        Db::rollback();
    }else{
        // 提交事务
        Db::commit();
    }
    • fetchSql

    • La méthode getLastSql ne peut obtenir que le dernier enregistrement SQL exécuté

    La méthode
    Db::transaction(function () {
        $data = ['cat'=>'1','title'=>'日系小浪漫与温暖羊毛针织拼接网纱百褶中长收腰连衣裙','price'=>'1598.35','add_time'=>1576080000];
        $insert = Db::table('shop_goods')->insert($data);
    });
    • fetchSql renvoie directement le SQL actuel sans exécuter

    $select = Db::table('shop_goods')
                ->field('title,price,id')
                ->where('status',1)
                ->order('price','DESC')
                ->select();
    if($select->isEmpty()){
        echo '未查询到数据';
    }else{
        print_r($select->toArray());
    }

    12. Configurer dynamiquement la base de données

    répertoire de configuration fichier database.php

    return [

                              'connexions'                                                                                                                                               .             'nom d'hôte'                                                                                                                                                                                                                 " nom d'utilisateur'                                        ' =>                                                                                                                                                                                 Port

                 

                'params ' => [],

                                                                                                                                                                                                            'préfixe '= & Gt; env :: get ('database.prefix','shop_'),

    // méthode de déploiement de la base de données : 0 concentré (serveur unique), 1 distribué (serveur principal)

    ' déployer '= >

                                                                                                                                                                                                                                                    => 1,

                                                                                                            Numéro de série '' slave_no '= & gt;',

    // si le champ est strictement vérifié si le champ existe

    ' field_strict '= & gt; nécessite une ligne de poids déconnectée

    ' break_reconnect '= & gt; false,

                // 监听SQL

                'trigger_sql'       => true,

                //开启字段缓存

                'fields_cache'      => false,

                // 字段缓存路径

                'schema_cache_path' => app()->getRuntimePath() 'schema' .

    CREATE TABLE `shop_user` (

    `uid` int( 10) non signé NOT NULL AUTO_INCREMENT COMMENT 'ID utilisateur',

    `account` varchar(50) NOT NULL COMMENT 'Compte',

    `password` char(32) NOT NULL COMMENT 'Mot de passe',

    `name` varchar (50) COMMENTAIRE NON NULL 'Nom',

    `status` tinyint(1) non signé NON NULL PAR DÉFAUT '1' COMMENTAIRE 'Statut 1 sur 2 désactivé',

    `add_time` int(10) non signé NON NULL COMMENTAIRE 'Ajouter time',

    PRIMARY KEY (`uid`)

    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='Backend Administrator';
    • connect Méthode de configuration dynamique de la connexion à la base de données informations

    Db::connect('ouyangke')->table('shop_user')->select();

    La méthode connect est requise Appelée au début de la requête, et doit être suivi de la méthode de requête, sinon certaines requêtes peuvent échouer ou la connexion à la base de données par défaut peut toujours être utilisée

    13.Opération en chaîne WHRER (pas couramment utilisé)

    • Identique à la fonction d'expression de requête, ThinkPHP fournit les méthodes de requête rapides suivantes

    "whereNotLike*" StringstringstringstringStringString Brochettes

    14. Autres opérations en chaîne (peu courantes)

    Fonctionnement cohérentFonctionTypes de paramètres pris en charge
    whereOr*pour la requête ORChaîne, tableau et objet
    whereLike* Requête floue Chaîne de caractères
    whereIn* IN requête
    whereNotIn*Pas dans la requête IN
    whereNull*Demander si le champ est NULL
    where NotNull*quer y champ N'est-il pas NULL
    whereExists*EXISTE requête
    whereNotExists* Pas dans la requête EXISTSString
    whereBetweenTime*Comparaison d'intervalle de tempsString
    whereTime*Requête rapide pour l'heure et la date String
    whereExp* Requête d'expression, prend en charge la syntaxe SQLString
    whereFindInSet*FIND_IN_SET queryString
    whereRaw* est utilisé pour la requête directe et le fonctionnement des conditions de chaîne
    Opérations continues Fonction Types de paramètres pris en charge
    alias est utilisé pour définir des alias pour la table de données actuelle Chaîne
    strict est utilisé pour définir s'il faut détecter strictement si le nom du champ existe Valeur booléenne
    group est utilisé pour la prise en charge de groupe pour les requêtes chaîne
    having est utilisée pour prendre en charge requêtes String
    join*Pour rejoindre la prise en charge des requêtesChaînes et tableaux
    union*Pour la prise en charge des unions pour les requêtesChaînes, tableaux et objets
    distinct distinct prise en charge des requêtes booléen
    verrouillage mécanisme de verrouillage pour la base de données booléen
    cache pour le cache des requêtes prend en charge plusieurs paramètres
    commentaire pour les commentaires SQL String
    force est utilisé pour l'indexation forcée de l'ensemble de données chaîne
    partition est utilisée pour définir les informations de partition chaîne de tableau
    failException est utilisée pour définir si aucune donnée n'est requise ried ou non levée Exception Valeur booléenne
    séquence est utilisée pour définir le nom de la séquence d'incrémentation automatique chaîne
    replace est utilisée pour définir la méthode REPLACE pour écrire Valeur booléenne
    extra Utiliser pour définir des règles de requête supplémentairesString
    duplicate Utilisé pour définir les informations DUPLCATEChaîne de tableau
    procédure Utilisée pour définir si la requête actuelle est une requête de procédure stockée Valeur booléenne
    master est utilisée pour configurer le serveur maître pour lire les données Valeur booléenne
    view* est utilisée pour la requête de vue String, array

    15. Opération de transaction

    • Le moteur InnoDB prend en charge le traitement des transactions, MyISAM ne prend pas en charge le traitement des transactionsInnoDB引擎支持事务处理,MyISAM不支持事务处理

    rrreee
    • transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚

    rrreee

    十六、数据集

    • 数据库通过select查询,得到的数据集对象

    • 返回的数据集对象是thinkCollection

    rrreee

    🎜🎜< La méthode code>transaction exploite les transactions de la base de données. Lorsqu'une exception se produit dans le code lors de la fermeture, elle annulera automatiquement🎜
  • rrreee🎜16. est interrogé via select L'objet ensemble de données 🎜🎜🎜L'objet ensemble de données renvoyé est thinkCollection, qui fournit la même utilisation que les tableaux et encapsule également certaines méthodes supplémentaires🎜
    NuméroMéthodeDescription
    1 isEmptyEst-il vide
    2 toArray Convertir en tableau
    3 tous tous Données
    4 fusionner Fusionner d'autres données
    5 diff Comparer les tableaux et renvoyer la différence
    6 flip Échange de clés et de valeurs dans les données
    7 intersect Comparer les tableaux et renvoyer l'intersection
    8 keys Renvoyer tous les noms de clés dans les données
    9 pop Supprimez le dernier élément des données
    10 shift Supprimer le premier élément des données
    11 unshift Insérer un élément au début des données
    12 push Insérer un élément à la fin
    13 réduire En utilisant la fonction de personnalisation de l'utilisateur, renvoie sous forme de chaîne Array
    14 reverse Données réorganisées dans l'ordre inverse
    15 ​​​​chunk Les données sont séparées en plusieurs blocs de données
    16 chacun Exécuter des rappels pour chaque élément des données
    17 filtre Utilisez la fonction de rappel pour filtrer les éléments dans les données
    18 colonne Renvoie la colonne spécifiée dans les données
    19 trier Trier les données
    20 ordre Spécifier le tri des champs
    21 shuffle Mélangez les données
    22 tranchez Interceptez une partie des données
    23 mapUtilisez la fonction de rappel pour traiter les éléments du tableau dans
    24 where Filtrer les éléments du tableau en fonction des conditions du champ
    25 whereNotLikeLike élément de filtre de requête
    26 whereNotLike Pas comme l'élément de filtre
    27 whereIn IN interroge et filtre les éléments du tableau
    28 whereNotIn Not IN interroge et filtre les éléments du tableau
    29whereBetween Between interroge et filtre les éléments du tableau array
    30whereNotBetweenNot Between filtre les éléments du tableau
    rrreee

    Préparation : effectuez une requête d'ensemble de données dans le modèle et tous les objets de l'ensemble de données seront renvoyés, mais la méthode utilisée est thinkmodelCollection类 (héritée de thinkCollection), mais l'utilisation est cohérente.