json - 无法通过邮递员将 Json 值插入到我的表的 json 列中
问题描述
这是我的项目表(laravel 迁移):
Schema::connection('mysql')->create('item', function (Blueprint $table) {
$table->increments('id')->unsignedInteger();
$table->unsignedInteger('icd');
$table->unsignedInteger('itypeid');
$table->json('mandatory_prop');
$table->unsignedInteger('parentId')->nullable();
$table->foreign('icd')->references('id')->on('itemClass')->onDelete('cascade')->onUpdate('cascade');
$table->foreign('itypeid')->references('id')->on('itemType')->onDelete('cascade')->onUpdate('cascade');
$table->foreign('parentId')->references('id')->on('item')->onDelete('cascade')->onUpdate('cascade');
$table->timestamps();
});
这是错误: 链接到邮递员中的错误消息图片
路线:
Route::post('item','ItemController@store');
控制器:
public function store(Request $request)
{
//input a new role
$item = $request->isMethod('put') ? Item::findOrFail($request->item_id) : new Item;
$item->id = $request->input('item_id');
$item->icd = $request->input('icd');
$item->itypeId = $request->input('itypeId');
$item->mandatory_prop = $request->input('mandatory_prop');
$item->parentId = $request->input('parentId');
if($item->save()) {
return new itemResource($item);
}
}
解决方案
根据图像,您的问题似乎不是 json 列,而是该icd
列而null
不是您传递的值 2 。确保在您的Item
模型中,您已icd
在数组中列出该列fillable
。
然后对于 JSON,您使用错误的引号来区分键或字符串。所以试试:
"mandatory_prop": "{'size': '35mb', 'Speed': '2.86Hz'}"
您甚至可以尝试不使用""
json 对象。
推荐阅读
- vb.net - 声明查询时出现 OleDBDataAdapter 错误
- c# - UWP 多文件选择器列表
- javascript - Java 脚本执行启动 chrome 而不是 web 视图
- javascript - 如何知道哪些事件减慢了 setTimeout?
- scala - LinearRegressionWithSGD.train “错误:类型不匹配”
- python - 无法在python中绘制二维数据
- c++ - sd-bus 信号不调用 cb 函数
- python - python数据类型覆盖在打印和写入中表现不同
- javascript - bootstrap4输入文件上传不会在输入中显示上传的文件名??如何使用角度解决
- javascript - 处理 Laravel API 时如何设计路由而不是返回 Laravel 视图?