swoft文档

本文详细介绍了Swoft框架中Controller类及注解的使用方法,包括类注解、方法注解的功能与参数,如何指定路由前缀和后缀,以及HTTP方法的限定。同时,还讲解了实体类、逻辑层注入的配置,以及DevTool的使用,最后提到了如何在控制器中获取请求数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 类注解,设置在 Controller 类上,标记当前类是一个http控制器类

显式指定路由前缀: @Controller(prefix="/route") @Controller("/route")

隐式指定路由前缀: @Controller() 默认自动解析 controller class 的名称,并且使用驼峰格式。

比如:

/**
 * action demo
 *
 * @Controller("/index")
 */
class IndexController
{

 

 

  1. @RequestMapping 方法注解,用于控制类的Action方法上。

/**

* @RequestMapping(route, method)

*/ 

public function some() {}

注解参数:

route 设置路由path,也是默认参数。

method 设置允许的请求方法,可以多个。 e.g. GET POST。

示例:

 

 

显式指定路由后缀: @RequestMapping(route="index")@RequestMapping("index")

隐式指定路由后缀: 不使用 @RequestMapping 或者使用 @RequestMapping(), 默认解析方法名为后缀

限定HTTP方法: @RequestMapping(route="index", method=RequestMethod::GET) 指定路由支持的HTTP方法,默认是支持GET和POST

比如 method={RequestMethod::POST,RequestMethod::PUT} 设置路由支持 POST 和 PUT

指定路由参数: @RequestMapping(route="anyName/{name}"),Action 方法中可以直接使用 $name 作为方法参数

 

 

  1. 创建实体类必须添加

use Swoft\Db\Types;

 

 

  1. 控制器中 添加注入逻辑层(写在注释部分)

/**
 * 注入逻辑层
 * @Inject()
 * @var AdDao
 */
private $ad;

 

注意添加:

use Swoft\Bean\Annotation\Inject;

use App\Models\Dao\AdDao; (对应的dao类)

 

 

 

 

  1. devTool 配置
  1. .在 config/beans/base.php 添加 HTTP 中间件让 DevTool 介入请求声明周期

  1. .DevTool 配置,用于标识是否启用某些功能(config/properties/app.php),如不存在可自行添加配置

 

  1. 将 vendor\swoft\devtool\web\dist\devtoo 的devtool复制到 public 下
  2. 通过浏览器访问                     

SCHEME://HOST:PORT/__devtool(e.g. http://127.0.0.1:80/__devtool)

 

 

 

  1. 获取请求数据

在括号中添加Request $request 

 

$request->query(); 获取所有GET参数

$request->query('name', 'defaultName'); 获取name参数默认值defaultName

$request->post(); 获取所有POST参数

$request->input(); 获取所有参,包括GET或POST

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值