Jump to content
vinegredz

Ошибка primary_id_field при создании записи через API

Recommended Posts

Здравствуйте.

Отправляю POST запрос на создание новой записи в базе данных. URL такого вида:

https://site.com/api/cms/records/12?

В ответ приходит такое:

{
    "id": null,
    "title": "photo",
    "category": {
        "id": 24,
        "name": "Photos",
        "url": "https:\/\/site.com\/tools\/photos\/",
        "class": "IPS\\cms\\Categories12",
        "permissions": {
            "perm_id": 268,
            "perm_view": "4,6,2,3",
            "perm_2": "4,6,2,3",
            "perm_3": "4,6,3",
            "perm_4": "4,6,3",
            "perm_5": "",
            "perm_6": "",
            "perm_7": ""
        }
    },
}

Как видите в ответе все корректно, кроме поля id, которое со значение Null.

Когда смотрю напрямую в базу данных, то создается запись с primary_id_field = 0.

Система обновлена до последней версии.

Подскажите, пожалуйста, где и как присваивается id так как оно (вроде) не автоинкрементируемое.  

Share this post


Link to post
Share on other sites

Поле ID практически во всех таблицах автоинкрементируемое, тем более у записей в Страницах. 

Share this post


Link to post
Share on other sites

Допустим, но почему может при каждом запросе API создаваться запись с primary_id_field = 0. Счетчик просто не считает дальше. 

Я так же проверил, чтобы нумерация по этой колонке в базе была корректной и там действительно отсчет идет от 1 (как и в других таблицах).

Есть идеи куда капать?

Share this post


Link to post
Share on other sites

@vinegredz, Вы создали две записи посредством API и у обеих колонка primary_id_field равна нулю?

Share this post


Link to post
Share on other sites

Да, верно. Пусть их будет хоть 10, все будут с primary_id_field = 0.

Ковыряю сейчас таблицу.

Share this post


Link to post
Share on other sites

По всей видимости вы меняли таблицу, т.к. она создаётся с автоинкрементом:

"primary_id_field": {
                "allow_null": false,
                "auto_increment": true,
                "binary": false,
                "comment": "",
                "decimals": null,
                "default": null,
                "length": 11,
                "name": "primary_id_field",
                "type": "INT",
                "unsigned": false,
                "values": [

                ],
                "zerofill": false
            },

Посмотрите структуру таблицы в phpmyadmin 

Share this post


Link to post
Share on other sites

Да, ошибка в том, что по какой-то причине в таблице для поля primary_id_field было отключено auto_increment. Включил вручную, сделала колонку основной и все заработало. Спасибо!

Share this post


Link to post
Share on other sites

Рады были помочь. Поскольку проблема решена - закрываю тему.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.