#json #laravel #postman
#json #laravel #postman
Вопрос:
Вот моя таблица элементов (перенос в 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();
});
Вот ошибка :
ссылка на изображение сообщения об ошибке в postman
Маршрут:
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);
}
}
Комментарии:
1. Можете ли вы привести здесь код вашего контроллера?
2. Да, я опубликовал приведенный выше код
Ответ №1:
Судя по изображению, ваша проблема, похоже, не в столбце json, а в icd
столбце, который оказывается null
вместо передаваемого вами значения 2. Убедитесь, что в вашей Item
модели вы указали icd
столбец в вашем fillable
массиве.
И затем для JSON вы используете неправильные кавычки, чтобы отличить ключ или строку. Так что попробуйте:
"mandatory_prop": "{'size': '35mb', 'Speed': '2.86Hz'}"
Вы даже можете попробовать без ""
вокруг объекта json.
Ответ №2:
Попробуйте это
Добавьте это в свой Item Model
protected $casts = [
'mandatory_prop' => 'json',
];
И $request->input('mandatory_prop')
это должен быть массив
вы можете использовать $request->input('mandatory_prop')
или $request->mandatory_prop