Rumah  >  Artikel  >  rangka kerja php  >  Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

藏色散人
藏色散人ke hadapan
2021-08-23 15:29:564032semak imbas

Berikut ialah pengenalan kepada definisi dan penggunaan pengawal thinkphp daripada ruangan tutorial rangka kerja thinkphp Saya harap ia dapat membantu rakan-rakan yang memerlukan.

Takrifan pengawal

Nama kelas adalah sama dengan nama fail,

Rendering output

Output pemaparan menggunakan output pemulangan

<?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);
    }

}

Pada masa ini, halaman itu memaparkan fail json
Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

Kod tidak boleh diganggu dalam pengawal . .
Gunakan output henti

<?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);
    }

}

Gunakan output henti

Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

Pengawal berbilang peringkat

Pengawal berbilang peringkat berbilang peringkat kawalan Pengawal secara langsung menggunakan

<?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;
    }
}

dalam ruang nama untuk mentakrifkan sub-pengawal Blog
struktur direktori di bawah ruang nama Indeks
Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

untuk menentukan peraturan penghalaan

<?php use think\facade\Route;

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

Akses direktori blog di bawah laluan indeks

Pengawal Asas

Pengawal akan mempunyai pengawal asas
Sistem akan menyediakan

app\BaseController

Pengawal asas

Fail direktori adalah seperti berikut
Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

Semua kawalan mempunyai kelas kawalan asas
appBaseController

Disebabkan oleh mod berbilang aplikasi. . Alihkan kelas asas ke direktori
Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

Tukar ruang nama

namespace app\index\controller;

use think\App;
use think\exception\ValidateException;
use think\Validate;
<?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)
    {
        //
    }
}

Kandungan output

string(5) "index" string(43) "/home/ming/PhpstormProjects/untitled12/app/"

Pengesahan pengawal

<?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)
    {
        //
    }
}

Dengan cara ini pengawal mengesahkan

Pengawal kosong

Pengawal kosong ialah kaedah yang dipanggil apabila tiada kaedah ditemui

    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        return 'error request';
    }

Pengawal Sumber

Buat pengawal yang tenang
Input

php think make:controller index@Blog

Jana pengawal sumber
Jana api

<?php namespace app\index\controller;

use think\Request;

class Blog
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //
    }

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

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($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)
    {
        //
    }
}

Daftar penghalaan sumber

Route::resource('blog', 'Blog');

Pengawal middleware

Pengawal penulisan

<?php namespace app\index\middleware;

class Hello
{
    public function handle($request, \Closure $next){
        $request->hello = 'ming';
        return $next($request);
    }
}

Mendaftarkan pengawal menggunakan laluan

<?php use think\facade\Route;

Route::rule(&#39;ming&#39;, &#39;index/index&#39;)->middleware(
    [
        app\index\middleware\Hello::class
    ]
);

Lawati http://localhost: 8082/index/ming
Kehadiran ming

menunjukkan bahawa pendaftaran middleware berjaya.

Atas ialah kandungan terperinci Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam