field('id,title,content')->select();" 2. Utilisez "$Model->field(array(. . .))" méthode définit des alias, etc. pour certains champs."/> field('id,title,content')->select();" 2. Utilisez "$Model->field(array(. . .))" méthode définit des alias, etc. pour certains champs.">

Maison  >  Article  >  développement back-end  >  A quoi sert le champ php

A quoi sert le champ php

藏色散人
藏色散人original
2021-09-16 11:21:332249parcourir

L'utilisation du champ php est la suivante : 1. Utilisez "$Model->field('id,title,content')->select();" 2. Utilisez le champ "$Model-> (array(...))" méthode définit des alias, etc. pour certains champs.

A quoi sert le champ php

L'environnement d'exploitation de cet article : système Windows 7, version thinkphp v5.1, ordinateur Dell G3

Utilisation du champ en php

Dans la méthode de fonctionnement cohérente de ThinkPHP, il existe de nombreuses techniques d'utilisation pour la méthode sur le terrain, et la méthode sur le terrain est principalement Le but est d'identifier les champs à restituer ou à opérer, comme détaillé ci-dessous.

1. Utilisé pour les requêtes

Dans les opérations de requête, la méthode de champ est la plus fréquemment utilisée.

$Model->field('id,title,content')->select();

La méthode field est utilisée ici pour spécifier les valeurs des trois champs, notamment l'identifiant, le titre et le contenu, dans l'ensemble de résultats de la requête. Le SQL exécuté est équivalent à :

SELECT id,title,content FROM table

Bien sûr, en plus de la méthode select, toutes les méthodes de requête, y compris find, etc., peuvent utiliser la méthode field. Ici, nous n'utilisons select qu'à titre d'exemple.

L'exemple ci-dessus peut également être remplacé par un tableau : [-more-]

$Model->field(array('id','title','content'))->select();

Le SQL final exécuté est équivalent à celui ci-dessus.

^_^ Il semble que l'utilisation des tableaux soit trop compliquée, mais ne tirez pas encore cette conclusion, vous comprendrez les avantages de l'utilisation des tableaux plus tard.
La définition en mode tableau peut définir des alias pour certains champs, par exemple :

  1. $Model->field(array('id','title'=>' name ','content'))->select();

Le SQL exécuté est équivalent à :

  1. SELECT id ,title as name,content FROM table

Si vous souhaitez l'utiliser directement

  1. $Model->field( ' id, titre comme nom, contenu')->select();

peut obtenir des résultats erronés.
Pour certaines exigences de champ plus complexes, les avantages des tableaux sont plus évidents, par exemple :

  1. $Model->field(array('id','concat(name,' -',id)'=>'truename','LEFT(title,7)'=>'sub_title'))->select(); Le SQL exécuté est équivalent à : SELECT id,concat(name,'-',id )astruename
  2. ,
LEFT

(

title
    ,
  1. 7)assub_title FROM table Je pense que tout le monde comprend que lorsque vous devez utiliser des fonctions SQL dans des champs, la méthode array peut être une bonne solution. Est-ce le seul effet de la méthode terrain ? Si vous le pensez, vous sous-estimez la méthode de terrain de ThinkPHP. ThinkPHP considère les détails de manière beaucoup plus réfléchie que vous ne le pensez ^_^. Regardons d'abord la situation suivante. S'il y a une table avec beaucoup de champs et deux exigences, la première exigence est d'obtenir tous les champs. Cela peut être très simple, car il n'est pas possible d'appeler la méthode field. ou utiliser directement la méthode des champs vides. Cela peut être fait, en fait, c'est vrai : .
    1. $Modèle->select();
    2. Les trois utilisations ci-dessus sont équivalentes et équivalentes à l'exécution SQL : SELECT * FROM table
    3. Mais ce n'est pas ce que j'ai dit obtenir tous les champs, je j'espère appeler explicitement tous les champs (pour les systèmes avec des exigences de performances élevées, ceci La demande n'est pas excessive, du moins c'est une relativement bonne habitude), alors OK, c'est quand même très simple, l'utilisation suivante peut obtenir l'effet escompté : $Model->field(true)-> ;select();

    1. fied(true) obtiendra explicitement la liste de tous les champs dans la table de données, même si votre table de données comporte 100 champs. La deuxième exigence est que je souhaite obtenir toutes les valeurs de champ sauf le champ de contenu (la valeur du champ de texte consomme beaucoup de mémoire). Par exemple, la méthode suivante. peut réaliser la fonction ci-dessus :
    2. $Model
    ->

    field('content'

    ,
      true
    1. )->select(); Pour exclure davantage Les champs peuvent également être :

    $Model
    ->

    field
      (
    1. 'user_id,content',true)->select(); //Ou utilisez

    $Model
      ->
    1. field(array('user_id','content' ),vrai) ->select ();
    2. 2. Pour l'écritureEn plus des opérations de requête, la méthode field a également une fonction de sécurité très importante-field. détection de légalité (Remarque : cette fonctionnalité n'est prise en charge qu'à partir de la version 3.1). La méthode field combinée à la méthode create peut compléter la détection de la légalité du champ de la soumission du formulaire. Si nous l'utilisons dans la méthode de traitement de la soumission du formulaire : $Model->field('title,email,content. ')->create(); signifie que les seuls champs légaux du formulaire sont les champs de titre, d'e-mail et de contenu, peu importe la manière dont l'utilisateur modifie ou ajoute les champs de soumission du navigateur seront directement bloqués. Puisqu'il existe tous les autres champs que nous ne souhaitons pas qu'ils soient déterminés par les soumissions des utilisateurs, vous pouvez définir des champs supplémentaires à écrire via la fonction de saisie semi-automatique.
    3. Résumé

    De l'utilisation de la méthode de champ, nous devrions être capables de comprendre ce qu'on appelle une petite méthode mais une grande utilisation. Bien sûr, nous espérons juste que ThinkPHP pourra apporter plus de commodité et de surprise à votre développement. partagez votre utilisation et votre expérience !

    Apprentissage recommandé : "Tutoriel vidéo PHP"

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!

Déclaration:
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