Maison  >  Article  >  cadre php  >  Parlons de la façon de transmettre des paramètres dans la fonction thinkphp D

Parlons de la façon de transmettre des paramètres dans la fonction thinkphp D

PHPz
PHPzoriginal
2023-04-07 09:01:17645parcourir

Dans ThinkPHP, la fonction D est une méthode pratique qui peut aider les développeurs à instancier rapidement un objet modèle. Dans de nombreux cas, nous devons transmettre des paramètres à une méthode du modèle afin de mieux gérer la logique métier. Cet article explique comment transmettre des paramètres dans les fonctions D.

1. Introduction à la fonction D

La fonction D est une méthode couramment utilisée dans ThinkPHP pour instancier des objets de modèle. Son format de syntaxe est le suivant :

D('模型名','应用名');

Parmi eux, le nom du modèle est un paramètre obligatoire. Le nom de l'application est un paramètre facultatif. S'il n'est pas spécifié, il s'agit par défaut de l'application actuelle. Par exemple, si nous voulons instancier le modèle Blog, nous pouvons utiliser le code suivant :

$Blog = D('Blog');

2. Comment passer des paramètres dans la fonction D

En développement réel, nous pouvons avoir besoin de passer des paramètres à une méthode du modèle pour un meilleur traitement de la logique métier. Par exemple, si nous devons interroger la liste des utilisateurs de plus de 20 ans, nous pouvons utiliser le code suivant :

$User = D('User');
$list = $User->getUsersByAge(20);

Dans le code ci-dessus, getUsersByAge est une méthode personnalisée dans le modèle User, qui est utilisée pour interroger les informations de l'utilisateur. en fonction de l'âge. Si nous devons utiliser la fonction D pour instancier l'objet modèle User et appeler la méthode getUsersByAge, comment devons-nous transmettre les paramètres ?

Tout d'abord, nous devons comprendre le deuxième paramètre de la fonction D : le nom de l'application. Par défaut, le nom de l'application est le nom de l'application actuelle. Si nous devons instancier l'objet modèle dans d'autres applications, nous pouvons le faire en spécifiant le nom de l'application. Par exemple, si nous voulons instancier un objet de modèle Utilisateur dans l'application Admin, nous pouvons utiliser le code suivant :

$User = D('User','Admin');

Dans le code ci-dessus, 'Admin' représente le nom de l'application. De cette façon, la fonction D trouvera le modèle Utilisateur dans l'application Admin et instanciera l'objet. Cependant, nous n’avons pas résolu le problème de la transmission des paramètres à la méthode getUsersByAge du modèle User.

Pour résoudre ce problème, ThinkPHP propose une manière d'écrire plus concise. Nous pouvons utiliser le troisième paramètre de la fonction D pour transmettre des paramètres. Par exemple, si nous devons interroger la liste des utilisateurs de plus de 20 ans, nous pouvons utiliser le code suivant :

$User = D('User','','');
$list = $User->getUsersByAge(20);

Dans le code ci-dessus, la première chaîne vide représente le nom du modèle, la deuxième chaîne vide représente le nom de l'application , et le troisième Une chaîne vide indique le passage des paramètres. Nous pouvons utiliser la fonction func_get_args() dans la méthode getUsersByAge pour obtenir les paramètres passés.

3. Exemple

Faisons-le dans un projet. Dans le projet ThinkPHP5.0, créez un module Blog. Créez un contrôleur d'articles dans le module Blog et ajoutez une méthode d'index pour interroger la liste des articles avec un ID supérieur à 10 et un statut de 1. Le code est le suivant :

// 文件地址:application\blog\controller\Article.php
namespace app\blog\controller;
use think\Controller;
class Article extends Controller
{
    public function index()
    {
        $Blog = D('Blog','Common');
        $list = $Blog->getArticlesById(10,1);
        dump($list);
    }
}

Dans le code ci-dessus, nous utilisons la fonction D pour instancier un objet modèle Blog et spécifier le nom de l'application 'Common'. Nous avons également appelé la méthode personnalisée getArticlesById dans le modèle Blog pour interroger la liste des articles qui remplissent les conditions. Le code de la méthode getArticlesById est le suivant :

// 文件地址:application\common\model\Blog.php
namespace app\common\model;
use think\Model;
class Blog extends Model
{
    protected $table = 'blog';
    public function getArticlesById($id,$status)
    {
        $where = [
            'id' => ['gt',$id],
            'status' => $status
        ];
        return $this->where($where)->select();
    }
}

Dans le code ci-dessus, nous définissons une méthode getArticlesById qui interroge la liste des articles avec un ID supérieur à 10 et un statut de 1. Cette méthode accepte deux paramètres, $id et $status. Nous utilisons la méthode Where pour définir les conditions de requête dans la méthode et renvoyons enfin les résultats de la requête via la méthode select.

Grâce à l'exemple ci-dessus, nous pouvons voir que la fonction D est très pratique à utiliser et peut nous aider à instancier rapidement des objets de modèle et à transmettre des paramètres pour mieux gérer la logique métier.

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