码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 02 控制器《ThinkPHP6 入门到电商实战》


    文章目录(更新中…)

    01 thinkphp6的前期开发准备《ThinkPHP6 入门到电商实战》
    02 控制器《ThinkPHP6 入门到电商实战》
    03 数据库查询、模型查询、多库查询《ThinkPHP6 入门到电商实战》
    04 tp6 的查数据《ThinkPHP6 入门到电商实战》
    05 tp6 的数据添加《ThinkPHP6 入门到电商实战》
    06 tp6 的数据更新(改)及删除 《ThinkPHP6 入门到电商实战》
    07查询表达式 及 page分页、order 排序《ThinkPHP6 入门到电商实战》
    08 获取器 withAttr、多连缀、whereRaw、事务、数据集《ThinkPHP6 入门到电商实战》

    若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

    一、路由及控制器

    在这里不考虑多应用下访问,先讲解单应用下的访问方式。单应用的访问方式如下:

    http://serverName/index.php(或者其它入口文件)/控制器/操作/参数/值…

    • 其中 serverName 表示域名
    • index.php 是入口文件(可隐藏)
    • 控制器可以简单理解为是对模板进行逻辑控制动作的控制
    • 操作指在控制器中的不同的方法 参数是指操作方法中克传递的参数

    二、控制器

    此时我们新建一个php文件,命名为 hello,这个文件我们当做一个控制器,这个控制器我们得放入 controller 目录之下:
    在这里插入图片描述
    这个类我们需要遵循规范,首字母大写,接着在类中编写如下代码:

    
    namespace app\controller;
    use app\BaseController;
    class Test extends BaseController
    {
    
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    该代码中 namespace app\controller; 定义了命名空间,use app\BaseController; 表示将控制器基类引入,因为在tp框架中,基类中已经写好了对应的方法属性,我们直接继承即可使用 tp 框架对应的特性(例如:返回实际路径 return $this->app->getBasePath(); 或 返回当前方法名 return $this->request->action();),随后创建一个类为 Test 并且继承自这个基类,此时命名这个类为 Test 与文件名一致也是遵循了规范。

    接着咱们在这个类中创建一个方法,命名为 hello:

    
    namespace app\controller;
    use app\BaseController;
    class Test extends BaseController
    {
        public function hello(){
            return 'hello 1_bit...';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    此时就写好了一个简单的控制器了,那么在之后的使用中咱们就可以通过 url 访问这个控制器。

    controller 目录可以修改,需要在 config 目录下的 route.php 文件中找到 controller_layer进行目录修改:
    在这里插入图片描述

    三、控制器访问

    在以上说明中,我们已经得到了 url 的方法:

    http://serverName/index.php(或者其它入口文件)/控制器/操作/参数/值…

    那么此时就可以访问这个控制器中的 hello 方法,那么通过第一个小点中的说明,那么此时访问 url 如:http://localhost/index.php/test/hello

    此时的页面结果如下:
    在这里插入图片描述
    接着我们还可以给与这个 hello 方法参数,例如:

    
    namespace app\controller;
    use app\BaseController;
    class Test extends BaseController
    {
        public function hello($name='',$say=''){
            return 'hello'.$name.' '.$say;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    此时 url 就可以写成:http://localhost/index.php/test/hello/name/1_bit/say/how are you?

    此时页面结果如下:
    在这里插入图片描述

    在这里要注意,在一个控制器下,index 方法是默认方法,当访问控制器且未指定对应操作时,所访问的方法是 index 方法。

    四、省略 index.php

    index.php 是一个入口文件,是默认的,咱们可以通过设置对其进行隐藏,隐藏的方法在此只介绍 win 下 phpstudy 中的方法,若是其他系统可自行搜索找到解决办法。

    首先打开下图中所指示的文件:
    在这里插入图片描述

    接下来可以看到当前文件内容如下:
    在这里插入图片描述
    接着在 location 中添加如下方法:

    if (!-e $request_filename) {
        rewrite ^/(.*)$ /index.php/$1 last;
    }
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    随后保存后重启环境,一定要重启环境,接着去掉 index.php 后进行访问,依旧没有问题:
    在这里插入图片描述

    五、控制器中对数组值的返回

    在做接口服务时,很多时候回使用数组作为返回值,那么数组如何返回成 json呢?

    在 tp6 中返回json 很简单,直接使用 json 进行返回即可,例如:

    public function hello($name='',$say=''){
       $res=array('name'=>'张三','height'=>'170');
       return json($res);
    }
    
    • 1
    • 2
    • 3
    • 4

    此时页面结果如下:
    在这里插入图片描述
    若你直接 return 这个数组将会报错:
    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    jwt 实现用户登录完整java
    try - catch 语句真的会影响性能吗?
    春节活动 - 高峰值奖励发放技术方案
    安卓游戏开发框架应用场景以及优劣分析
    OpenSea爬取Nft详情全部数据实战
    linux - 简单上传下载文件(lrzsz、scp)
    table表格初始化根据字段数字排序,table表格进入后返回上一级设置,第一级隐藏
    AR爆发的前夜,Rokid站在了门口
    自建网盘平台搭建(源码+教程)
    Filebeat+Kafka+ELK
  • 原文地址:https://blog.csdn.net/A757291228/article/details/126151970
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号