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

blmhpbnm  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(127)

我正在使用PHP 7和CakePHP 4.0开发一个RESTful API。

<?php

namespace App\Controller\Api;

use App\Controller\AppController;

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 App\Controller\Api\ProductsController::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中的参数转换为字符串?

zengzsys

zengzsys1#

//这是我的网址,请点击这里返回首页
公共函数配置文件($id){

//this is my profile method in controller here i want to get  my id here

 using method $id parameter    help me any one

}

相关问题