我正在使用PHP 7和CakePHP 4.0开发一个RESTful API。
<?php
namespace AppControllerApi;
use AppControllerAppController;
class ProductsController extends AppController
{
public function list(int $categoryId, int $limit = 10, int $page = 1)
{
// here's my code with queries and so on
}
}
我想用GET请求调用我的端点到这个URL:
http://example.com/api/products/list/33/30/1
但我得到了这个错误:
Argument 1 passed to AppControllerApiProductsController::list() must be of the type integer, string given, called in /var/www/repo/public/vendor/cakephp/cakephp/src/Controller/Controller.php on line 521
现在,一个非常简单的解决方案是从list
方法的签名中的参数中删除类型,如下所示(因为,如果我只是从$categoryId
参数中删除该类型,那么其他方法也会出现相同的错误(:
public function list($categoryId, $limit = 10, $page = 1)
但我更愿意保留";正确的";在我的方法签名中键入。我是不是运气不好,或者有没有办法(可能在路由配置中,或者在其他地方(阻止Cake(或者PHP本身?(将URL中的参数强制转换为字符串?
localhost/cakephp210?id=123//这是我的url
公共功能配置文件($id({
//this is my profile method in controller here i want to get my id here
using method $id parameter help me any one
}