将参数从URL传递到CakePHP中类型正确的控制器函数



我正在使用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

}

相关内容

  • 没有找到相关文章

最新更新