当前位置: 首页 > news >正文

ThinkPHP 资源路由的简单使用,restfull风格API

ThinkPHP 资源路由的简单使用,restfull风格API

  • 一、资源控制器
  • 二、资源控制器简单使用

一、资源控制器

资源控制器可以轻松的创建RESTFul资源控制器,可以通过命令行生成需要的资源控制器,例如生成index应用的TestR资源控制器使用:

php think make:controller index@TestR
# php think make:controller 应用名@资源控制名

或者使用完整的命名空间生成

php think make:controller app\index\controller\TestR
# php think make:controller app\应用名\controller\资源控制器名

如果只是用于接口开发,可以使用

php think make:controller index@TestR --api
# php think make:controller 应用名@资源控制名 --api

然后你只需要为资源控制器注册一个资源路由:

// Route::resource('自定义的路由名称','控制器名称')
Route::resource('a', 'TestR');

设置后会自动注册7个路由规则,对应资源控制器的7个方法

标识请求类型生成路由规则对应操作方法(默认)
indexGETTestRindex
createGETTestR/createcreate
savePOSTTestRsave
readGETTestR/:idread
editGETTestR/:id/editedit
updatePUTTestR/:idupdate
deleteDELETETestR/:iddelete

二、资源控制器简单使用

首先使用命令,快速创建API资源控制器

php think make:controller index@TestR --api

在这里插入图片描述

接着,去相应的应用中注册一个资源路由

<?phpuse think\facade\Route;// restfull 资源路由Route::resource('a', 'TestR');

在这里插入图片描述

将资源控制器中的方法写一些输出,用于测试一下restfull风格的资源控制器,这里我只给index和read方法写了方法体,简单测试一下

<?php
declare (strict_types = 1);namespace app\index\controller;use think\Request;class TestR
{/*** 显示资源列表** @return \think\Response*/public function index(){//dump('index');}/*** 保存新建的资源** @param  \think\Request  $request* @return \think\Response*/public function save(Request $request){//}/*** 显示指定的资源** @param  int  $id* @return \think\Response*/public function read($id){//dump($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){//}
}

测试 资源路由的 index 方法,其访问路径为 域名/index.php/路由,因为这里我还没有重写Apache的重写规则,所以index.php入口还是得敲到地址栏中。

在这里插入图片描述

测试 资源路由的 read 方法,此时已经能体现出restful路由的好处了,请求url变得更为简洁和安全。

在这里插入图片描述


相关文章:

ThinkPHP 资源路由的简单使用,restfull风格API

ThinkPHP 资源路由的简单使用&#xff0c;restfull风格API 一、资源控制器二、资源控制器简单使用 一、资源控制器 资源控制器可以轻松的创建RESTFul资源控制器&#xff0c;可以通过命令行生成需要的资源控制器&#xff0c;例如生成index应用的TestR资源控制器使用&#xff1a…...

利用前缀树获取最小目录

一、任务名&#xff1a; 开发最小目录工具 二、任务描述 开发工具&#xff0c;从桶清单文件中列举出所有最小目录&#xff0c;并列举出每一个最小目录中包含的文件总数与文件总量。 最小目录的解释&#xff1a; 有以下几个目录 a/b/1.txt a/b/2/txt a/3.txt a/b/c/ 则&…...

Java【手撕双指针】LeetCode 18. “四数之和“, 图文详解思路分析 + 代码

文章目录 前言一、四数之和1, 题目2, 思路分析3, 代码 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, 链表, 堆…...

OpenCV处理图像和计算机视觉任务时常见的算法和功能

当涉及到OpenCV处理图像和计算机视觉任务时&#xff0c;有许多常见的具体算法和功能。以下是一些更具体的细分&#xff1a; 图像处理算法&#xff1a; 图像去噪&#xff1a;包括均值去噪、高斯去噪、中值滤波等&#xff0c;用于减少图像中的噪声。 直方图均衡化&#xff1a;用…...

Flutter实现StackView

1.让界面之间可以嵌套且执行动画。 2.界面的添加遵循先进后出原则。 3.需要使用AnimateView&#xff0c;请看我上一篇博客。 演示&#xff1a; 代码&#xff1a; Stack: import package:flutter/cupertino.dart;///栈&#xff0c;先进后出 class KqWidgetStack {final Lis…...

c++ future与promise

C11 标准中 头文件中包含了以下几个类和函数&#xff1a; Providers 类&#xff1a;std::promise, std::package_taskFutures 类&#xff1a;std::future, shared_future.Providers 函数&#xff1a;std::async()其他类型&#xff1a;std::future_error, std::future_errc, st…...

在x86机器上的Docker运行arm64容器

1. 引言 工作中常用电脑主机CPU为x86架构&#xff0c;有时由于产品需要&#xff0c;我们需要编译aarch64架构的SDK或者应用程序供使用或者测试。 一种比较快捷的方式是使用aarch64的CPU构建相应操作系统&#xff0c;实现真机运行。但在无arm架构CPU环境下&#xff0c;我们可否…...

centos7删除乱码文件

centos7删除乱码文件1. 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.解释 当文件名为乱码的时候&#xff0c;无法通过键盘输入文件名&#xff0c;所以在终端下就不能直接利用rm&#xff0c;mv等命令管理文件了。 但是每个文件都有一个i节点号&#xff0c;可以通过…...

uni-app里使用webscoket

实现思路和vue中是一样的。如果想看思路可以看这篇文章&#xff1a;websocket 直接上可以运行的代码&#xff1a; 一、后端nodeJS代码&#xff1a; 1、新建项目文件夹 2、初始化项目&#xff1a; npm init -y 3、项目里安装ws npm i ws --save 4、nodeJS代码&#xff1…...

jdk17+springboot使用webservice,踩坑记录

这几天wms对接lbpm系统&#xff0c;给我的接口是webservice的&#xff0c;老实说&#xff0c;这个技术很早&#xff0c;奈何人家只支持这个。 环境说明&#xff1a;JDK17 springboot2.6.6。网上很多教程是基于jdk8的&#xff0c;所以很多在17上面跑不起来。折腾两天&#xff0c…...

计算机网络文件拆分—视频流加载、断点续传

视频流加载 视频流加载的原理是通过网络传输和播放器解码来实现的。 首先&#xff0c;视频文件会被分成一系列小的数据包&#xff0c;通常是以流的形式传输&#xff0c;这些数据包通过网络传输到用户设备。在传输过程中&#xff0c;可以采用各种协议&#xff0c;如HTTP、RTSP…...

JVM 给对象分配内存空间

指针碰撞空闲列表TLAB 为对象分配空间的任务实际上便等同于把一块确定大小的内存块从Java堆中划分出来。 指针碰撞&#xff1a;&#xff08;Bump The Pointer&#xff09; 堆的内存是绝对规整的&#xff0c;内存主要分为两部分&#xff0c;所有使用过的内存被放在一边&#x…...

Excel·VBA二维数组组合函数、组合求和

目录 1&#xff0c;二维数组组合函数举例 2&#xff0c;组合求和 之前的文章《ExcelVBA数组组合函数、组合求和》和《ExcelVBA数组排列函数》&#xff0c;都是针对一维数组的组合和排列 二维数组组合&#xff1a;对一个m行*n列的二维数组&#xff0c;每行抽取1个元素进行组合&a…...

调用自实现MyGetProcAddress获得CreateFileA函数并调用创建写入文件

写文件如下 #include <iostream> #include <Windows.h>typedef HANDLE(WINAPI* CreateFileAFunc)(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);DWORD MyGetProcAddress(_In_ HMODULE hModule,_In_ LPCSTR lpProcName ){PIMAGE_DOS_HEADE…...

Leetcode 191.位1的个数

编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&#xff09;中…...

安防监控视频平台EasyCVR视频汇聚平台调用接口出现跨域现象的问题解决方案

视频监控汇聚EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视…...

Python中的一些常用操作

文章目录 一. Python操作之-- 使用Python 提取PDF文件中的表格数据&#xff01;二&#xff1a;三&#xff1a; Python中的 staticmethodclassmethod方法四&#xff1a; 反斜杠 \五&#xff1a; 终端的解释器提示符号修改六&#xff1a; python使用json.dumps输出中文七&#xf…...

go语言调用python脚本

文章目录 代码gopython 在 go语言中调用 python 程序&#xff0c;你可能会用到 代码 亲测 go 测试 go 文件 func TestR(t *testing.T) {// 设置要执行的Python脚本和参数scriptPath : "../nansen.py"arg1 : "nansen"// 执行Python脚本cmd : exec.Comm…...

2.3 【MySQL】命令行和配置文件中启动选项的区别

在命令行上指定的绝大部分启动选项都可以放到配置文件中&#xff0c;但是有一些选项是专门为命令行设计的&#xff0c;比方说defaults-extra-file 、 defaults-file 这样的选项本身就是为了指定配置文件路径的&#xff0c;再放在配置文件中使用就没啥意义了。 如果同一个启动选…...

外部库/lib/maven依赖项 三者关系

外部库(存放项目初始配置的jar包)(它的文件夹里并没有包含lib文件夹的引的外部的依赖的jar包) lib(存放外部导入到项目的依赖的jar包) maven依赖项(管理项目所有的jar包依赖) 三者存放jar包的关系 项目所依赖的全部的jar包 maven依赖项的jar包 外部库中的jar包 lib中的…...

专业解析开源AI浏览器助手:Page Assist的深度技术架构与实战应用

专业解析开源AI浏览器助手&#xff1a;Page Assist的深度技术架构与实战应用 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist Page Assist是一款革…...

Outfit开源字体深度解析:7大优势助力专业设计

Outfit开源字体深度解析&#xff1a;7大优势助力专业设计 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专为品牌设计和数字界面优化的开源几何无衬线字体&#xff0c;提供从Th…...

NotebookLM智能体插件开发:连接AI笔记与外部工具的实现指南

1. 项目概述&#xff1a;当AI笔记助手学会“动手”最近在折腾AI应用开发的朋友&#xff0c;可能都注意到了GitHub上一个挺有意思的项目&#xff1a;amp-rh/notebooklm-agent-plugin。乍一看名字&#xff0c;它像是Google那个实验性AI笔记工具NotebookLM的一个插件。但如果你深入…...

V-REP/CoppeliaSim机器人仿真进阶:Graph模块3D轨迹可视化与数据导出实战解析

1. Graph模块基础与3D轨迹可视化原理 在机器人仿真中&#xff0c;轨迹可视化就像给机械臂装上了"运动摄像机"。V-REP/CoppeliaSim的Graph模块就是这个摄像机的核心部件&#xff0c;它能记录机械臂末端执行器在三维空间中的每一个细微动作。我刚开始用这个功能时&…...

三步掌握QQ音乐加密文件解码:qmcdump工具完整实战指南

三步掌握QQ音乐加密文件解码&#xff1a;qmcdump工具完整实战指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否…...

别再乱点JIRA后台了!手把手教你配置项目专属的工单创建界面(附界面方案关联避坑点)

JIRA界面配置实战&#xff1a;从零构建高可用工单系统的避坑指南 当团队规模扩张到15人以上时&#xff0c;随意创建的JIRA工单开始暴露致命问题——用户故事缺少"验收标准"字段&#xff0c;缺陷报告漏填"重现步骤"&#xff0c;而技术债务卡片却显示着完全不…...

TVA 在宠物混合监护场景中的创新应用(5)

重磅预告&#xff1a;本专栏将独家连载新书《智能体视觉技术与应用》&#xff08;系列丛书&#xff09;部分精华内容&#xff0c;该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。…...

Code-Act框架:让AI通过代码生成与执行实现智能体“动手”能力

1. 项目概述&#xff1a;Code-Act&#xff0c;一个让AI“动手”的智能体框架最近在AI智能体这个圈子里&#xff0c;一个叫“Code-Act”的项目热度挺高。它不是一个具体的应用&#xff0c;而是一个框架&#xff0c;一个旨在解决当前AI智能体“眼高手低”问题的底层工具。简单来说…...

观察使用Taotoken Token Plan套餐后月度API成本的变化趋势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察使用Taotoken Token Plan套餐后月度API成本的变化趋势 对于个人开发者或小型团队而言&#xff0c;在项目开发中持续使用大模型…...

Node.js连接币安生态:MCP社区工具实战与架构解析

1. 项目概述&#xff1a;一个连接Node.js与币安生态的MCP社区工具最近在捣鼓一些加密货币数据分析和自动化策略的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫node2flow-th/binance-th-mcp-community。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但拆…...