Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

藏色散人
Freigeben: 2021-08-25 09:01:57
nach vorne
3989 Leute haben es durchsucht

Das Folgende ist eine Einführung in die Definition und Verwendung von Thinkphp-Controllern aus der ThinkphpFramework-Tutorial-Kolumne. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Controller-Definition

Der Klassenname ist derselbe wie der Dateiname,

Rendering-Ausgabe

Rendering-Ausgabe verwendet Rückgabeausgabe

<?php namespace app\admin\controller;
use app\admin\model\User;

class Index
{

    public function Index(){
        $data = array(
            &#39;ming&#39; => 'ming',
            'ming' => 'xiao'
        );
        return json($data);
    }

}
Nach dem Login kopieren

Zu diesem Zeitpunkt rendert die Seite eine JSON-Datei
Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

kann nicht im Controller-Interrupt-Code enthalten sein. .
Halt-Ausgabe verwenden

<?php namespace app\admin\controller;
use app\admin\model\User;

class Index
{

    public function Index(){
        $data = array(
            &#39;ming&#39; => 'ming',
            'ming' => 'xiao'
        );
        halt("输出测试");
        return json($data);
    }

}
Nach dem Login kopieren

Halt-Ausgabe verwenden

Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

Mehrstufiger Controller

Mehrstufiger Controller Mehrstufiger Controller wird direkt im Namespace verwendet

<?php namespace app\admin\controller\Index;


class Blog
{
    public function index(){

    }

    public function read($id){
        var_dump(url(&#39;index/blog/read&#39;, [&#39;id&#39; => 5, 'name' => 'ming']));
        return $id;
    }
}
Nach dem Login kopieren

Definiert den Sub-Controller-Blog unter dem Index-Namespace
Verzeichnis Struktur
Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

Routing-Regeln definieren

<?php use think\facade\Route;

Route::rule(&#39;blog/:id&#39;, &#39;index.blog/read&#39;);
Route::rule(&#39;/&#39;, &#39;Index/index&#39;);
Nach dem Login kopieren

Greifen Sie auf das Blog-Verzeichnis unter der Indexroute zu

Basis-Controller

Der Controller verfügt über einen Basis-Controller
Das System stellt einen

app\BaseController
Nach dem Login kopieren

Basis-Controller

Die Verzeichnisdatei ist wie folgt folgt
Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

Alle Steuerelemente haben eine grundlegende Steuerklasse
appBaseController

Aufgrund des Multianwendungsmodus. . Die Basisklasse wird in das Verzeichnis verschoben.
Ein Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt

Ändern Sie den Namespace gefunden werden. Die Methode namens

namespace app\index\controller;

use think\App;
use think\exception\ValidateException;
use think\Validate;
Nach dem Login kopieren

Ressourcen-Controller

Ruhigen Controller erstellen

Eingabe

<?php namespace app\index\controller;

use think\Request;

class Index extends BaseController
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $action = $this->request->action();
        $path = $this->app->getBasePath();
        var_dump($action);
        var_dump($path);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
Nach dem Login kopieren
Ressourcen-Controller generieren

API generieren

string(5) "index" string(43) "/home/ming/PhpstormProjects/untitled12/app/"
Nach dem Login kopieren

Ressourcen-Routing registrieren

<?php namespace app\index\controller;

use think\exception\ValidateException;
use think\Request;

class Index extends BaseController
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        try {
            $this->validate( [
                'name'  => 'thinkphp',
                'email' => 'thinkphp@qq.com',
            ],  'app\index\validate\User');
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            dump($e->getError());
        }
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
Nach dem Login kopieren

Controller-Middleware

Controller schreiben

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'error request';
    }
Nach dem Login kopieren
Verwenden Sie den Routenregistrierungscontroller

php think make:controller index@Blog
Nach dem Login kopieren

um http://localhost:8082/index/ming zu besuchen Wenn ming

erscheint, bedeutet dies, dass die Middleware-Registrierung erfolgreich war.

Empfohlen: „

Die neuesten 10 Thinkphp-Video-Tutorials


Das obige ist der detaillierte Inhalt vonEin Artikel, der die Definition und Verwendung des Thinkphp-Controllers ausführlich erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!