无法通过Postman将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数组中的CC_4列。

然后,对于JSON,您使用错误的引号来区分键或字符串。所以尝试:

"mandatory_prop": "{'size': '35mb', 'Speed': '2.86Hz'}"

您甚至可以在JSON对象周围没有""的情况下尝试。

尝试此

将其添加到您的Item Model

protected $casts = [
     'mandatory_prop' => 'json',
];

$request->input('mandatory_prop')必须是 array

您可以使用$request->input('mandatory_prop')$request->mandatory_prop

相关内容

  • 没有找到相关文章

最新更新