Maison  >  Article  >  cadre php  >  Explication détaillée de la façon dont thinkPHP appelle les vues

Explication détaillée de la façon dont thinkPHP appelle les vues

PHPz
PHPzoriginal
2023-04-11 15:09:421205parcourir

ThinkPHP est un framework MVC basé sur PHP. Il utilise le modèle de conception MVC pour séparer la logique métier et les opérations de données, facilitant ainsi le développement et la maintenance. Dans ThinkPHP, la vue est la couche View dans MVC, qui est utilisée pour afficher les données aux utilisateurs et est découplée du contrôleur (Controller) et du modèle (Model). Ci-dessous, nous apprendrons en détail comment appeler la vue.

1. Créer une vue

Dans ThinkPHP, nous pouvons appeler la vue via le contrôleur, mais avant de créer la vue, nous devons d'abord créer un contrôleur.

La méthode de création du contrôleur est la suivante :

<?php
namespace app\controller;
use think\Controller;
class Index extends Controller{
    public function index(){

    }
}

La fonction du contrôleur est de recevoir les demandes des utilisateurs, de traiter les demandes des utilisateurs et de se découpler du modèle (Model) et de la vue (View) pour atteindre le principe du single responsabilité.

Ensuite, nous devons appeler la vue dans le contrôleur.

Dans ThinkPHP, les vues sont stockées dans le répertoire /application/view/ Vous pouvez créer de nouveaux dossiers et fichiers dans le répertoire selon vos besoins. Par exemple, nous créons un nouveau fichier index.html dans le répertoire /application/view/ : /application/view/目录下,可以根据需要在目录中新建文件夹和文件。例如,我们在/application/view/目录下新建一个index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ThinkPHP调用视图示例</title>
</head>
<body>
    <h1>欢迎使用ThinkPHP!</h1>
</body>
</html>

在控制器中,我们可以通过调用View类的fetch方法,来渲染视图。

<?php
namespace app\controller;
use think\Controller;
class Index extends Controller{
    public function index(){
        return $this->fetch('index');
    }
}

在上面的代码中,我们通过控制器调用视图index.html$this->fetch('index')返回了视图的HTML代码,最终用于渲染页面。

如果我们将index.html文件放在了/application/view/index/目录下,我们可以在控制器中这样调用视图:

return $this->fetch('index/index');

二、视图传参

有时,我们需要在视图中动态地展示数据。在ThinkPHP中,我们可以通过传参的方式来将数据传递给视图。

在控制器中,我们可以使用assign方法来传递数据。

<?php
namespace app\controller;
use think\Controller;
class Index extends Controller{
    public function index(){
        $name = &#39;ThinkPHP&#39;;
        $this->assign('name',$name);
        return $this->fetch('index');
    }
}

在上面的代码中,我们将变量$name赋值为ThinkPHP,并将其传递给视图。

在视图中,我们可以通过{$name}的方式来展示传递过来的数据。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ThinkPHP调用视图示例</title>
</head>
<body>
    <h1>欢迎使用{$name}!</h1>
</body>
</html>

三、获取视图中的POST数据

有时,我们需要在视图中提交表单数据,并将其传递给控制器处理。在ThinkPHP中,我们可以通过request方法来访问POST数据。

在视图中,我们可以创建一个表单,通过POST方式提交数据给控制器。

<form method="post" action="<?php echo url(&#39;index/add&#39;); ?>">
    <input type="text" name="username" placeholder="请输入用户名">
    <input type="text" name="password" placeholder="请输入密码">
    <button type="submit">提交</button>
</form>

在控制器中,我们可以通过request方法来获取POST数据。

<?php
namespace app\controller;
use think\Controller;
class Index extends Controller{
    public function add(){
        $username = $this->request->post('username');
        $password = $this->request->post('password');
        //执行具体的业务逻辑
    }
}

在上面的代码中,我们使用$this->request->post()rrreee

Dans le contrôleur, nous pouvons appeler View La méthode <code>fetch de la classe code> est utilisée pour restituer la vue.

rrreee

Dans le code ci-dessus, nous appelons la vue index.html via le contrôleur, et $this->fetch('index') renvoie le code HTML de la vue, finalement utilisée pour restituer la page. 🎜🎜Si on place le fichier index.html dans le répertoire /application/view/index/, on peut appeler la vue dans le contrôleur comme ceci : 🎜rrreee🎜II , Passage des paramètres de vue🎜🎜Parfois, nous devons afficher dynamiquement les données dans la vue. Dans ThinkPHP, nous pouvons transmettre des données à la vue en passant des paramètres. 🎜🎜Dans le contrôleur, nous pouvons utiliser la méthode assign pour transmettre des données. 🎜rrreee🎜Dans le code ci-dessus, nous attribuons la variable $name à ThinkPHP et la passons à la vue. 🎜🎜Dans la vue, nous pouvons afficher les données transmises via {$name}. 🎜rrreee🎜3. Obtenir les données POST dans la vue🎜🎜Parfois, nous devons soumettre les données du formulaire dans la vue et les transmettre au contrôleur pour traitement. Dans ThinkPHP, nous pouvons accéder aux données POST via la méthode request. 🎜🎜Dans la vue, nous pouvons créer un formulaire et soumettre les données au contrôleur via POST. 🎜rrreee🎜Dans le contrôleur, nous pouvons obtenir des données POST via la méthode request. 🎜rrreee🎜Dans le code ci-dessus, nous utilisons la méthode $this->request->post() pour obtenir les données POST. 🎜🎜Grâce à la méthode ci-dessus, nous pouvons facilement appeler la vue et la découpler du contrôleur pour atteindre l'objectif de l'architecture MVC. 🎜

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