Maison  >  Article  >  cadre php  >  Comment passer des paramètres dans la fonction thinkphp D

Comment passer des paramètres dans la fonction thinkphp D

王林
王林avant
2023-06-02 19:32:09964parcourir

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 à la fonction D

Afin de mieux gérer la logique métier, lors du développement, nous pouvons avoir besoin pour passer à des méthodes spécifiques du paramètre du modèle. Le code suivant peut être utilisé pour interroger la liste des utilisateurs de plus de 20 ans

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

getUsersByAge dans le code ci-dessus est une méthode de modèle d'utilisateur personnalisée utilisée pour interroger les informations des utilisateurs par â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. Pour instancier un objet modèle dans une autre application, spécifiez simplement le nom de l'application. Par exemple, pour créer une instance de l'objet modèle Utilisateur dans l'application Admin, vous pouvez utiliser le code suivant :

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

Dans le code ci-dessus, 'Admin' représente le nom de l'application. Dans ce cas, l'application Admin recherche le modèle User pour instancier l'objet, permettant ainsi à la fonction D de fonctionner correctement. Cependant, nous devons encore trouver un moyen de transmettre des paramètres à la méthode getUsersByAge dans le 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. Le code suivant peut être utilisé pour interroger la liste des utilisateurs de plus de 20 ans

$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 la troisième chaîne vide est utilisée pour passer les paramètres. Dans la méthode getUsersByAge, nous pouvons utiliser la fonction func_get_args() pour obtenir les paramètres passés.

3. Exemple

Nous essayons de créer un module nommé Blog dans le projet ThinkPHP5.0 pour un fonctionnement réel. 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 utilisé 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. En définissant les conditions de requête à l'aide de la méthode Where, nous renvoyons finalement les résultats de la requête via la méthode select.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer