为什么我需要在codeigniter 4版本4.2.6中put(update)的url前面加上**/1**?
路径. php:
$routes->resource('ApiManageProfile', ['controller' =>'App\Controllers\ApiData\ApiManageProfile']); // get, put, create, delete
ApiManageProfile.php
<?php
namespace App\Controllers\ApiData;
use App\Controllers\BaseController;
use CodeIgniter\RESTful\ResourceController;
use Codeigniter\API\ResponseTrait;
class ApiManageProfile extends ResourceController
{
use ResponseTrait;
function __construct()
{
}
// equal to get
public function index()
{
}
// equal to post
public function create() {
}
// equal to get
public function show($id = null) {
}
// equal to put
public function update($id = null) {
$id = $this->request->getVar('id');
$birthday = $this->request->getVar('birthday');
$phonenumber = $this->request->getVar('phonenumber');
echo "TESTING";
}
// equal to delete
public function delete($id = null) {
}
}
然后我用 Postman 的电话把与/1****联系起来:
https://testing.id/index.php/ApiManageProfile/1?id=71&phonenumber=1122211&birthday=2023-01-20
代码运行正确。
但如果我用 Postman 来打电话放而不放/1:
https://testing.id/index.php/ApiManageProfile?id=71&phonenumber=1122211&birthday=2023-01-20
然后我得到这个错误:
"title": "CodeIgniter\\Exceptions\\PageNotFoundException",
"type": "CodeIgniter\\Exceptions\\PageNotFoundException",
"code": 404,
"message": "Can't find a route for 'put: ApiManageProfile'.",
对于先前版本的codeigniter 4版本4.1.2,它可以正常工作
我无法将所有Rest API更改为在put的url前面使用/1,因为我的应用程序已经启动。如果我更改react native中的代码,则需要一段时间来更新应用程序。而且人们无法更新数据。
Codeigniter 4似乎在最新的更新版本4.2.6中改变了一些东西。导致我的路线在应用程序中中断。
我真的需要帮助。我能做什么?
1条答案
按热度按时间gopyfrb31#
为
PUT
操作生成RESTFUL路由,包括以下内容。这一段不是可选的。
如果要将段实现为可选段,请将其从生成的布线中排除,并以这种方式明确声明它。