php - 在 PHPDoc 中描述控制器查询参数
问题描述
我的 Laravel 控制器上有一个 index 方法,它接受一个可选的查询字符串参数。
这应该如何在方法的 PHPDoc 块中表示?
雇主控制器.php:
/**
* @param Request $request
* @return Response
* Returns list of Employers
*/
public function index(Request $request) {
// This is the optional parameter which needs to be represented
// in the PHPDoc block
$collectiveAgreement = $request->query('collective_agreement');
...
}
解决方案
如果您的目的是记录这些字段,我建议创建一个处理所有逻辑的 FormRequest,然后将表单请求注入控制器。这样,您就知道请求是在哪里形成的,然后转到该类以查看字段,甚至更好:它们通过验证的规则。
php artisan make:request ListUsersRequest
ListUsersRequest.php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ListUsersRequest extends FormRequest {
public function rules()
{
return [
'collective_agreement' => ['here', 'goes', 'your', 'rules'],
'another_field' => ['here', 'goes', 'more', 'rules'],
];
}
public function authorize()
{
return true;
}
}
然后,回到你的控制器
用户控制器.php
public function index(ListUsersRequest $request)
{ // ^^^^^^^^^^^^^^^^
$data = $request->validated();
$collectiveAgreement = $data['collective_agreement'];
// Or as you did:
// $collectiveAgreement = $request->query('collective_agreement');
}
推荐阅读
- webpack - node模块包如何导入依赖?
- nginx - nginx重定向到错误的网站
- json - 在 Robot Framework 中解析 Json
- c - 存储在 SRAM 中的变量的默认值
- php - Laravel 活动记录中的 Mysql 查询
- c# - 使用 C# 中的参数从 JQuery 调用 WebMethod
- python - 列表理解与将生成器表达式传递给列表
- ios - iOS 12 上的 PWA 不再与 Safari 共享 Service Worker 缓存?
- android - 检查服务是否已在运行
- node.js - 错误 TS2305:模块“/node_modules/rxjs/Rx”没有导出的成员“可订阅”