CakePHP 3 中的Add
操作(POST 方法(不起作用,它正在询问我已经在 json 消息中告知的字段。让我解释一下:
我的场景是什么:
- 我正在使用 WAMP,我的 Apache
mod_rewrite
激活;
我 - 正在使用作曲家,我安装了CakePHP 3和CRUD(friendsofcake/crud(;
- 我正确设置了 MySQL 数据库连接;
- 我正在使用MySQL示例数据库
sakila
; - 我从烘焙生成
Country
模型; - 我更改了
AppController
类内容以加载 CRUD 插件,将其内容更改为:
命名空间应用\控制器;使用蛋糕\控制器\控制器;类应用控制器扩展控制器 { 使用 \Crud\Controller\ControllerTrait; 公共$components = [ "请求处理程序", 'Crud.Crud' => [ "操作" => [ "原油指数", "Crud.View", "Crud.Add", "Crud.Edit", "克鲁德.删除" ], "侦听器" => [ "克鲁德·阿皮", "Crud.ApiPagination" ] ] ];}
- 我在
app/config/routes.php
中添加了路由器::扩展(['json', 'xml'](; - 我添加了$routes->资源("国家"(,但没有删除
app/config/routes.php
中存在的默认路由; - 我的根站点地址是 http://localhost:8080/mtag
问题是如何发生的:
我正在使用 Chrome 的 Postman 并将标头Accept
和Content-Type
值设置为 application/json
并将 POST 发送到以下链接:具有以下 json 内容的 http://localhost:8080/mtag/country:
{ "国家": "BlaBlaBla", "last_update": "2015-12-24"}
但我收到以下状态代码:412 前提条件失败。在返回的 json 中:
成功:假,数据:{ 代码: 412, 消息:"发生 2 个验证错误",}
指示的缺失字段是country
和last_update
但我用 json 通知了他们。我做错了什么?有人有一个例子如何使用json正确使用CakePHP CRUD吗?
当我使用Postman测试蛋糕PHP CRUD函数时,我不使用application/json
进行Content-Type
,而是将其留空。对于正文部分,只需使用 form-data
而不是 json 对象,同时使用raw
正文。