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

Artikel yang menerangkan definisi dan penggunaan pengawal thinkphp secara terperinci

藏色散人
Lepaskan: 2021-08-25 09:01:57
ke hadapan
4086 orang telah melayarinya

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

}
Salin selepas log masuk

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

}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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;);
Salin selepas log masuk

Akses direktori blog di bawah laluan indeks

Pengawal Asas

Pengawal akan mempunyai pengawal asas
Sistem akan menyediakan

app\BaseController
Salin selepas log masuk

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;
Salin selepas log masuk
<?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)
    {
        //
    }
}
Salin selepas log masuk

Kandungan output

string(5) "index" string(43) "/home/ming/PhpstormProjects/untitled12/app/"
Salin selepas log masuk

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)
    {
        //
    }
}
Salin selepas log masuk

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';
    }
Salin selepas log masuk

Pengawal Sumber

Buat pengawal yang tenang
Input

php think make:controller index@Blog
Salin selepas log masuk

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)
    {
        //
    }
}
Salin selepas log masuk

Daftar penghalaan sumber

Route::resource('blog', 'Blog');
Salin selepas log masuk

Pengawal middleware

Pengawal penulisan

<?php namespace app\index\middleware;

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

Mendaftarkan pengawal menggunakan laluan

<?php use think\facade\Route;

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

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!

Label berkaitan:
php
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan