发开api时,经常会用到thinkphp的多级控制器,访问方法如下:

例如:有v1和v2两个版本的接口

v1:版本控制器(类文件位置为:application/api/controller/v1/User.php)代码如下:

<?php

namespace app\api\controller\v1;

use app\api\model\User as UserModel;

class User{

  $user = UserModel::get($id);

  if($user){

    return json($user);

  }else{

    return json(['error'=>'用户不存在'],404);

  }

}

?>

v2:版本控制器(类文件位置为application/api/controller/v2/User.php)代码如下:

<?php

namespace app\api\controller\v2;

use app\api\model\User as UserModel;

class User{

  public function read($id){

    $user = UserModel::get($id,'profile');

      if($user){

        return json($user);

      }else{

        return json(['error'=>'用户不存在'],404);

      }

  }

}

?>

访问地址:

v1:   http://serverName/index.php/api/v1.user/read/id/1

v2:   http://serverName/index.php/api/v2.user/read/id/1  (v2包含了profile的关联数据)

ThinkPHP开发api时多级控制器的访问方法的更多相关文章

  1. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  2. thinkphp单入口和多入口的访问方法

    完全是参考thinkphp的官网资料 现在, 基本上都是 用 单入口 的方式来做的! thinkphp可创建多入口和单入口两种模式,本文主要讲解创建方法和两者的区别. TP版本:3.1.3 前端:Ho ...

  3. Thinkphp--------为什么Thinkphp会默认进入Index控制器的index方法

    最近遇到两个刚学PHP的童鞋,都问到了同一个问题,就是他们没有做什么配置,为什么访问入口文件index.php的时候会自动跳转到IndexController里面的index方法.他们想知道具体怎么回 ...

  4. Eclipse + Pydev开发Python时import报错解决方法

    一.  原文链接:http://blog.csdn.net/lhanchao/article/details/51306626            用eclipse +PyDev开发python时, ...

  5. ThinkPHP之中利用commom被继承控制器控制访问每一个控制器方法都需要验证是否已经登录!

    防止 <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controll ...

  6. python开发部署时新增数据库中表的方法

    在项目版本让运维部署时,涉及到数据库表的增加问题,想了一下,可以有四种方法 1.使用SQLAlchemy的db.create_all()方法 # -*- coding:utf-8 -*- from f ...

  7. 手摸手教你让Laravel开发Api更得心应手

    https://www.guaosi.com/2019/02/26/laravel-api-initialization-preparation/ 1. 起因 随着前后端完全分离,PHP也基本告别了v ...

  8. thinkphp5多级控制器是什么?怎么使用?

    thinkphp5多级控制器是什么?怎么使用? 一.总结 1.多级控制器是让控制器的级数变成多级,也就是controller目录下可以新建其它目录. 2.使用的话注意目录下的控制的的命名空间(加上目录 ...

  9. thinkphp使用模块/控制器/操作访问时出现No input file specified.解决方式

    thinkphp使用 http://serverName/index.php/模块/控制器/操作 访问时,出现了 No input file specified. 的错误 解决办法: 一: 开启cgi ...

随机推荐

  1. Multiism四阶巴特沃兹低通滤波器的仿真实现

    因为4阶巴特沃兹低通滤波器比较简单,所以省略设计过程和思路以及不必要的废话. 设计的滤波器的性能:截止频率大约是500HKZ,Rs = Rl = 32 欧姆. 预估滤波器大致的幅频特性曲线如下: 最初 ...

  2. 新版iTunes connect上传iOS应用

    http://www.brianjcoleman.com/tutorial-distribute-apps-using-new-itunes-connect/ Recently Apple updat ...

  3. 必懂知识——HashMap的实现原理

    HashMap的底层数据结构 1.7之前是:数组+链表 数组的元素是Map.Entiry对象 当出现哈希碰撞的时候,使用链表解决, 先计算出key对应的数组的下标,这个数组的这个位置上为空,直接放入, ...

  4. django 快速实现登陆,接着注册的项目写(五)

    1.改项目的urls.py from django.conf.urls import url,include from django.contrib import admin admin.autodi ...

  5. solr安装记录

    [root@localhost bin]# ./solr start -force*** [WARN] *** Your open file limit is currently 1024.   It ...

  6. mybatis 操作其他数据库的数据表

    配置文件里面配置的数据库只是默认数据库,并不是只能操作默认数据库.(被自己蠢死了,唉) 1. 注解方式 使用BaseMapper方式操作数据表时,在表对应的实体类上的 @table 注解描述表名时加上 ...

  7. spark 常用函数介绍(python)

    以下是个人理解,一切以官网文档为准. http://spark.apache.org/docs/latest/api/python/pyspark.html 在开始之前,我先介绍一下,RDD是什么? ...

  8. 前端知识点回顾之重点篇——CORS

    CORS(cross origin resource sharing)跨域资源共享 来源:http://www.ruanyifeng.com/blog/2016/04/cors.html 它允许浏览器 ...

  9. 如何配置git send-email相关的邮箱信息?

    关键是配置smtpserver,请参考此处

  10. python函数的执行过程

    对于 Python 常规函数,都只有一个入口,但会有多个出口如 return 返回或者抛出异常.函数从入口进入会一直运行到 return 语句或者抛出异常,中间不会暂停,函数一直拥有控制权.当运行结束 ...